2016-05-23 14 views
1

我正在挖掘一個相當大的項目,並試圖將部件分離到自己的項目中。在VS2015的C#項目中查找引用程序集的用法

一個程序集讓我很頭痛,因爲在分離的項目中引用它會引發一個關於循環依賴的錯誤。

我的問題是現在如何在項目中找到特定裝配參考的所有用法?

+2

最簡單的方法是從引用中刪除程序集並嘗試構建項目。所有的錯誤都會告訴你它試圖使用的地方。 – CathalMF

+0

呃,是的 - 那工作得很好哈哈。有時我們只是想太複雜。 – rinukkusu

回答

4

最簡單的方法是從引用中刪除程序集並嘗試構建項目。所有的錯誤都會告訴你它試圖使用的地方。

1

如果您在源代碼目錄中運行此PowerShell代碼段,它將生成所有項目依賴關係的文本描述。然後搜索您的項目名稱以查找傳入和傳出的依賴關係。

$projectFiles = Get-ChildItem .\*\*.csproj 
$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 + "] -> [" + $_ + "]" 
    } 
} 

新增獎金;您可以將輸出複製到yuml.me,它會爲您生成解決方案依賴關係的圖表。

+0

這不是我正在尋找的。我需要在代碼庫中使用程序集的某些內容。 – rinukkusu

+1

Gotcha。我會留下它作爲答案,因爲其他人可能會發現它有用,如果它們稍後發生在這個問題上。 –

相關問題