2008-09-17 79 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

相關問題