Gráfico de dependencia de los proyectos de Visual Studio

Actualmente estoy migrando una gran solución (~ 70 proyectos) de VS 2005 + .NET 2.0 a VS 2008 + .NET 3.5. Actualmente tengo VS 2008 + .NET 2.0.

El problema es que necesito mover los proyectos uno por uno al nuevo .NET Framework asegurando que ningún proyecto .NET 2.0 haga referencia al proyecto .NET 3.5. ¿Hay alguna herramienta que me dé un buen gráfico de las dependencias del proyecto?

¿Has probado NDepend? Le mostrará las dependencias y también puede analizar la usabilidad de sus clases y métodos.

Su página web:

http://ndepend.com

Necesitaba algo similar, pero no quería pagar (o instalar) una herramienta para hacerlo. Creé un script rápido de PowerShell que revisa las referencias del proyecto y las escupe en un formato amistoso de yuml.me en su lugar:

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" 

Gráfico de muestra

Actualización: ReSharper desde la versión 8 tiene la característica incorporada ‘Ver dependencias del proyecto’ .

La versión ReSharper <8 tiene la característica interna para mostrar gráficos de dependencia al usar el visor de archivos. Vea el manual rápido en la parte inferior de la publicación.

enter image description here

Cómo

  1. Instala la herramienta yEd desde aquí .
  2. Ejecute VS con el argumento de línea de comando /resharper.internal.
  3. Vaya a ReSharper / Internal / Show Dependencies.
  4. Especifique los proyectos que desea incluir en la ‘gran imagen’.
  5. Desmarque ‘Excluir nodos de terminal …’ a menos que lo necesite.
  6. Presione ‘Mostrar’.
  7. Usa el diseño jerárquico en yEd (Alt + Shift + H)
  8. Proporcionar comentarios =)

Puede obtener fácilmente un gráfico de dependencia del proyecto con Visual Studio 2010 Ultimate, escanear a los 5 minutos de este video para ver cómo: http://www.lovettsoftware.com/blogengine.net/post/2010/05/27/Architecture-Explorer .aspx

En Visual Studio 2010 Ultimate: Arquitectura | Generar Gráfico de Dependencia | Por la Asamblea.

Escribí una herramienta que podría ayudarte. VS Solution Dependency Visualizer analiza las dependencias del proyecto dentro de una solución y crea un cuadro de dependencia a partir de esta información, así como un informe de texto.

Puede crear un gráfico de dependencia de sus proyectos en VS 2010 Ultimate. Architecture Explorer le permite navegar por su solución, seleccionar proyectos y las relaciones que desea visualizar, y luego crear un gráfico de dependencia de su selección.

Para obtener más información, consulte los siguientes temas:

Cómo: generar documentos gráficos desde código : http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

Cómo buscar código usando Architecture Explorer : http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

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

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

Tuve un problema similar, pero fue aún más complicado porque varios proyectos se referían a versiones diferentes del mismo ensamblaje.

Para obtener un resultado que incluye información de la versión y comprueba posibles problemas de carga del ensamblado en tiempo de ejecución, creé esta herramienta:

https://github.com/smpickett/DependencyViewer

(enlace directo a la versión de Github: https://github.com/smpickett/DependencyViewer/releases )

Para completar la respuesta eriawan en gráficos generados por NDepende ver capturas de pantalla a continuación. Puede descargar y usar la versión de prueba gratuita de NDepend por un tiempo.

Más sobre el gráfico NDepend Dependency enter image description here

Más sobre NDependen de la Matriz de Dependencia : enter image description here

Descargo de responsabilidad: soy parte del equipo de herramientas

Puede crear un buen gráfico de las referencias en sus proyectos. Describí la forma en que lo hice en mi blog http://www.mellekoning.nl/index.php/2010/03/11/project-references-in-ddd/

Si simplemente quiere un gráfico de dependencia, he encontrado que esta es una de las formas más limpias de obtener uno:

Analizador de Dependencia

Creé un pequeño proyecto de C # usando YUML como salida. El código se puede encontrar aquí:

https://github.com/twistedtwig/DotnetProjectDependencyGraphs

La solución Powershell es la mejor. Lo adapté a un script bash que funciona en mi máquina (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 ' [ $ref ]" done done