2008-09-17 43 views

回答

3

除了NDepend,您还可以尝试使用Reflector的插件来显示程序集依赖关系图。

+0

的插件正是我一直在寻找的是,由于 – johnc 2008-09-17 06:02:22

2

您可以在Visual Studio 2010旗舰版通过创建项目和组件依赖关系图使用体系结构浏览器浏览您的解决方案,选择您想要可视化的项目和关系,然后创建e是您选择的依赖关系图。

欲了解更多信息,请参阅以下主题:

如何从代码生成图表文件:http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

如何:查找代码使用架构浏览http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

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

Visual Studio 2010的体系结构发现&建模工具论坛:http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads

+0

不错的东西,提供给最快路径感谢 – johnc 2010-03-24 20:48:03

0

Structure101可以做到这一点。您可以通过程序集和/或命名空间浏览模型,然后单击任何级别上的任何依赖关系,都会为您提供导致依赖关系的所有代码级别引用。 .NET版本处于测试阶段,但它已经可用于其他语言多年,所以它非常成熟。这是一个示例屏幕截图。 alt text http://www.headwaysoftware.com/images/assemblies.jpg

1

结帐Visual Studio 2010中见Videos

5

我需要类似的东西,但不想支付(或安装)的工具来做到这一点。我created a quick PowerShell script that goes through the project references和吐出来的yuml.me友好的格式来代替:

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

+0

+1一个办法。在两分钟之内,我启动了PowerShell,运行脚本,将输出粘贴到yuml.me中并生成一个图形。非常好!顺便说一句,您链接的博客文章中的代码产生的输出比您的简化版本稍微更清晰 - 对于缺少引用的项目,此代码在“[project] - > []”中引发。 (尽管如此,yuml似乎无论如何都会生成相同的图形。) – 2013-02-19 19:38:10

相关问题