Dot-Net

如何從我的 .NET 解決方案建構“依賴關係樹圖”

  • June 27, 2021

我可以從 Visual Studio .NET 項目中輕鬆查看單個項目引用的項目和 dll。

是否有任何應用程序或反射的使用可以為我建構一個完整的依賴關係樹,我可以使用它來繪製依賴關係的圖形圖表?

NDepend 帶有一個互動式依賴圖和一個依賴矩陣。您可以下載並使用 NDepend 的免費試用版一段時間。

更多關於 NDepend 依賴圖 在此處輸入圖像描述

更多關於 NDepend 依賴矩陣在此處輸入圖像描述

免責聲明:我是工具團隊的一員

我需要類似的東西,但不想支付(或安裝)工具來完成它。我創建了一個快速的 PowerShell 腳本,它通過項目引用並以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"

範例圖

(來源:yuml.me

引用自:https://stackoverflow.com/questions/80287