Wykres zależności projektów Visual Studio

Obecnie migruję Duże rozwiązanie (~70 projektów) z VS 2005+. NET 2.0 do VS 2008+. Net 3.5. Obecnie mam VS 2008+. Net 2.0.

Problem polega na tym, że muszę przenosić projekty jeden po drugim do nowego. NET framework, zapewniając, że żaden projekt. NET 2.0 nie odwołuje się do projektu. NET 3.5. Czy jest jakieś narzędzie, które dałoby mi ładny wykres zależności projektu?

Author: GregD, 2009-02-28

12 answers

Próbowałeś NDepend? Pokaże Ci zależności i możesz również przeanalizować użyteczność swoich klas i metod.

Ich strona:

Http://ndepend.com

 33
Author: Eriawan Kusumawardhono,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-28 15:12:55

Potrzebowałem czegoś podobnego, ale nie chciałem płacić za (lub instalować) narzędzie do tego. I stworzył szybki skrypt PowerShell, który przechodzi przez odniesienia do projektu i wypluwa je w yuml.me friendly-format zamiast:

Function Get-ProjectReferences ($rootFolder)
{
    $projectFiles = Get-ChildItem $rootFolder -Filter *.csproj -Recurse
    $ns = @{ defaultNamespace = "http://schemas.microsoft.com/developer/msbuild/2003" }

    $projectFiles | ForEach-Object {
        $projectFile = $_ | Select-Object -ExpandProperty FullName
        $projectName = $_ | Select-Object -ExpandProperty BaseName
        $projectXml = [xml](Get-Content $projectFile)

        $projectReferences = $projectXml | Select-Xml '//defaultNamespace:ProjectReference/defaultNamespace:Name' -Namespace $ns | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty "#text"

        $projectReferences | ForEach-Object {
            "[" + $projectName + "] -> [" + $_ + "]"
        }
    }
}

Get-ProjectReferences "C:\Users\DanTup\Documents\MyProject" | Out-File "C:\Users\DanTup\Documents\MyProject\References.txt"

 126
Author: Danny Tuppeny,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-08 14:35:34

Update: ReSharper od wersji 8 posiada wbudowaną funkcję 'View Project Dependencies' .

Wersja ReSharper wewnętrzną funkcję do wyświetlania wykresów zależności w przeglądarce yFiles. Zobacz szybką instrukcję w dolnej części posta.

Tutaj wpisz opis obrazka

Howto

  1. zainstaluj narzędzie yEd z tutaj .
  2. Run VS with / resharper.wewnętrzny argument wiersza poleceń.
  3. przejdź do ReSharper / Internal / Show Dependencies.
  4. Określ projekty, które chcesz dołączyć do "dużego obrazu".
  5. usuń zaznaczenie ' Wyklucz węzły końcowe... chyba, że tego potrzebujesz.
  6. Naciśnij "Pokaż".
  7. użyj układu hierarchicznego w yEd (Alt+Shift+H)
  8. Prześlij opinię =)
 56
Author: Shkredov S.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-13 09:29:35

Możesz łatwo uzyskać wykres zależności projektu za pomocą Visual Studio 2010 Ultimate, Skanuj do 5 minut w tym filmie, aby zobaczyć jak: http://www.lovettsoftware.com/blogengine.net/post/2010/05/27/Architecture-Explorer.aspx

W Visual Studio 2010 Ultimate: Architektura / Generowanie Grafu Zależności / Przez Montaż.

 30
Author: Chris Lovett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-06 15:14:37

Napisałem narzędzie, które może Ci pomóc. VS Wizualizator zależności rozwiązania analizuje zależności projektu w rozwiązaniu i tworzy wykres zależności na podstawie tych informacji, a także raport tekstowy.

 17
Author: devio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-25 07:35:18

Możesz utworzyć wykres zależności swoich projektów w VS 2010 Ultimate. Eksplorator architektury umożliwia przeglądanie rozwiązania, wybieranie projektów i relacji, które chcesz zwizualizować, a następnie tworzenie wykresu zależności na podstawie zaznaczenia.

Aby uzyskać więcej informacji, zobacz następujące tematy:

Jak: generowanie dokumentów graficznych z kodu: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

Jak: znaleźć kod Korzystanie z Eksploratora architektury: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

RC download: http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.

Visual Studio 2010 Architectural Discovery & Modeling Tools forum: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads

 9
Author: Esther Fan - MSFT,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-20 01:02:30

Miałem podobny problem, ale był on jeszcze bardziej skomplikowany, ponieważ kilka projektów odnosiło się do różnych wersji tego samego montażu.

Aby uzyskać wyjście, które zawiera informacje o wersji i sprawdza możliwe problemy z ładowaniem zestawu uruchomieniowego, zrobiłem to narzędzie:

Https://github.com/smpickett/DependencyViewer

(bezpośredni link do wydania github: https://github.com/smpickett/DependencyViewer/releases )

 6
Author: Pickett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-11 02:10:08

Aby uzupełnić odpowiedź eriawan na wykresach generowanych przez NDepend zobacz screenshooty poniżej. Możesz pobrać i przez jakiś czas korzystać z darmowej wersji próbnej NDepend.

Więcej o Ndepend zależność wykres Tutaj wpisz opis obrazka

Więcej o Ndepend Dependency Matrix : Tutaj wpisz opis obrazka

Uwaga: jestem częścią zespołu narzędzi

 5
Author: Patrick from NDepend team,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-27 12:48:45

Jeśli po prostu chcesz wykres zależności znalazłem jest to jeden z najczystszych sposobów, aby go uzyskać:

Analizator Zależności

 3
Author: Kieran Benton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-12 11:00:37

Możesz stworzyć ładny wykres odniesień w swoich projektach. Opisałem to na moim blogu http://www.mellekoning.nl/index.php/2010/03/11/project-references-in-ddd/

 3
Author: Hace,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-03-11 21:33:59

Stworzyłem mały projekt C# używając yuml jako wyjścia.. kod można znaleźć tutaj:

Https://github.com/twistedtwig/DotnetProjectDependencyGraphs

 2
Author: Jon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-23 13:00:29

Rozwiązanie Powershell jest najlepsze. Zaadaptowałem go do skryptu bash, który działa na moim komputerze (TM):

#!/bin/bash

for i in `find . -type f -iname "*.csproj"`; do
    # get only filename
    project=`basename $i`

    # remove csproj extension
    project=${project%.csproj}

    references=`cat $i | grep '<ProjectReference' | cut -d "\"" -f 2`
    for ref in $references; do
        # keep only filename (assume Windows paths)
        ref=${ref##*\\}

        # remove csproj extension
        ref=${ref%.csproj}

        echo "[ $project ] -> [ $ref ]"
    done

done
 2
Author: Nikolaos Georgiou,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:30