如何从我的 .NET 解决方案构建“依赖关系树图”
-
09-06-2019 - |
题
我可以轻松查看单个项目从 Visual Studio .NET 项目中引用的项目和 dll。
是否有任何应用程序或反射的使用可以构建一个完整的依赖关系树,我可以用它来绘制依赖关系的图形图表?
解决方案
除了 NDepend 之外,您还可以尝试此插件 反射器 用于显示程序集依赖关系图。
其他提示
NDepend 带有一个交互式依赖图和一个依赖矩阵。你可以 下载并使用免费试用版 NDepend 有一段时间了。
免责声明:我是工具团队的一员
我需要类似的东西,但不想付费(或安装)工具来完成它。我 创建了一个快速的 PowerShell 脚本来遍历项目引用 并将它们吐出 尤姆尔我 改为友好格式:
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"
您可以在 Visual Studio 2010 Ultimate 中创建项目和程序集的依赖关系图,方法是使用体系结构资源管理器浏览您的解决方案,选择要可视化的项目和关系,然后根据您的选择创建依赖关系图。
有关详细信息,请参阅以下主题:
如何:从代码生成图形文档: http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
如何:使用 Architecture Explorer 查找代码: http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
Visual Studio 2010 架构发现和建模工具 论坛: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads
结构101 可以做到这一点。您可以按程序集和/或命名空间浏览模型,然后单击任何级别的任何依赖项,即可获得导致依赖项的所有代码级引用。.NET 版本还处于测试阶段,但它已经可用于其他语言很多年了,因此它非常成熟。这是一个屏幕截图示例。替代文本 http://www.headwaysoftware.com/images/assemblies.jpg