it-swarm.com.de

Abhängigkeitsdiagramm von Visual Studio-Projekten

Ich migriere gerade eine große Lösung (~ 70 Projekte) von VS 2005 + .NET 2.0 nach VS 2008 + .NET 3.5. Derzeit habe ich VS 2008 + .NET 2.0.

Das Problem ist, dass ich Projekte einzeln in ein neues .NET-Framework verschieben muss, um sicherzustellen, dass kein .NET 2.0-Projekt auf ein .NET 3.5-Projekt verweist. Gibt es ein Werkzeug, das mir ein schönes Diagramm der Projektabhängigkeiten gibt?

104
Migol

Hast du NDepend ausprobiert? Es zeigt Ihnen die Abhängigkeiten und Sie können auch die Verwendbarkeit Ihrer Klassen und Methoden analysieren.

Ihre Website:

http://ndepend.com

Ich brauchte etwas Ähnliches, wollte aber kein Werkzeug dafür bezahlen (oder installieren). Ich habe ein schnelles PowerShell-Skript erstellt, das die Projektreferenzen durchläuft und sie stattdessen in einem yuml.me friendly-format ausspuckt:

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"

Sample Graph

133
Danny Tuppeny

Update: ReSharper, da Version 8 über die integrierte 'View Project Dependencies' -Funktion verfügt.

ReSharper Version <8 hat Internal Feature , um Abhängigkeitsdiagramme im yFiles Viewer anzuzeigen. Siehe die Kurzanleitung unten im Beitrag. 

enter image description here

Wie man

  1. Installieren Sie das yEd-Tool von hier
  2. Führen Sie VS mit dem Befehlszeilenargument /resharper.internal aus.
  3. Gehen Sie zu ReSharper/Intern/Abhängigkeiten anzeigen. 
  4. Geben Sie Projekte an, die Sie in das Gesamtbild aufnehmen möchten. 
  5. Deaktivieren Sie "Terminalknoten ausschließen ...", wenn Sie es nicht benötigen. 
  6. Klicken Sie auf "Anzeigen". 
  7. Verwenden Sie das hierarchische Layout in yEd (Alt + Shift + H). 
  8. Feedback geben =)
59
Shkredov S.

Mit Visual Studio 2010 Ultimate können Sie ganz einfach ein Diagramm zur Abhängigkeit von Projekten erstellen. Scannen Sie dieses Video in 5 Minuten, um folgende Informationen zu erhalten: http://www.lovettsoftware.com/blogengine.net/post/2010/05/27/Architecture -Explorer.aspx

In Visual Studio 2010 Ultimate: Architektur | Abhängigkeitsgraph erzeugen | Durch Versammlung.

30
Chris Lovett

Ich habe ein Tool geschrieben, das Ihnen helfen könnte. VS Solution Dependency Visualizer analysiert Abhängigkeiten von Projekten innerhalb einer Lösung und erstellt aus diesen Informationen ein Abhängigkeitstabell sowie einen Textbericht.

17
devio

Sie können in VS 2010 Ultimate ein Abhängigkeitsdiagramm Ihrer Projekte erstellen. Mit dem Architektur-Explorer können Sie Ihre Lösung durchsuchen, Projekte und die Beziehungen auswählen, die Sie visualisieren möchten, und dann ein Abhängigkeitsdiagramm aus Ihrer Auswahl erstellen.

Weitere Informationen finden Sie in den folgenden Themen:

Gewusst wie: Generieren von Diagrammdokumenten aus Code: http://msdn.Microsoft.com/de-de/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

How to: Suchen von Code mithilfe von Architecture Explorer: http://msdn.Microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

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

Visual Studio 2010 - Tools für die Architekturerkennung und Modellierung forum: http://social.msdn.Microsoft.com/Forums/en-US/vsarch/threads

8

Ich hatte ein ähnliches Problem, aber es war noch komplizierter, da mehrere Projekte auf verschiedene Versionen derselben Assembly verweisen.

Um eine Ausgabe zu erhalten, die Versionsinformationen enthält und nach möglichen Problemen beim Laden von Baugruppen sucht, habe ich dieses Tool erstellt:

https://github.com/smpickett/DependencyViewer

(direkter Link zur Veröffentlichung von github: https://github.com/smpickett/DependencyViewer/releases )

8
Pickett

Um die eriawan-Antwort in von NDepend generierten Diagrammen zu vervollständigen, sehen Sie unten stehende Screenshoots. Sie können die kostenlose Testversion herunterladen und verwenden von NDepend für eine Weile.

Weitere Informationen zum NDepend-Abhängigkeitsgraphenenter image description here

Weitere Informationen zu NDepend-Abhängigkeitsmatrix : enter image description here

Disclaimer: Ich bin Teil des Tool-Teams

Wenn Sie einfach ein Abhängigkeitsdiagramm wünschen, habe ich festgestellt, dass dies eine der saubersten Methoden ist, um eines zu erhalten:

Abhängigkeitsanalyse

3
Kieran Benton

Sie können ein Nice-Diagramm der Referenzen in Ihren Projekten erstellen. Ich habe auf meinem Blog beschrieben, wie ich das gemacht habe: http://www.mellekoning.nl/index.php/2010/03/11/project-references-in-ddd/

3
Hace

Ich habe ein kleines C # -Projekt mit YUML als Ausgabe erstellt. Den Code finden Sie hier:

https://github.com/twistedtwig/DotnetProjectDependencyGraphs

2
Jon

Die Powershell-Lösung ist die Beste. Ich habe es in ein bash-Skript umgewandelt, das auf meinem Rechner (TM) funktioniert:

#!/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

Ich habe alle Antworten geprüft, aber keine der Optionen war für mich zufriedenstellend. Deshalb habe ich mein eigenes Tool zur Vorschau der Abhängigkeiten von Projekten und Projekten geschrieben. 

https://github.com/Audionysos/VSProjectReferencesViewer

Es ist früh, aber es hat für meine Bedürfnisse funktioniert :)

0