我正在挖掘一個相當大的項目,並試圖將部件分離到自己的項目中。在VS2015的C#項目中查找引用程序集的用法
一個程序集讓我很頭痛,因爲在分離的項目中引用它會引發一個關於循環依賴的錯誤。
我的問題是現在如何在項目中找到特定裝配參考的所有用法?
我正在挖掘一個相當大的項目,並試圖將部件分離到自己的項目中。在VS2015的C#項目中查找引用程序集的用法
一個程序集讓我很頭痛,因爲在分離的項目中引用它會引發一個關於循環依賴的錯誤。
我的問題是現在如何在項目中找到特定裝配參考的所有用法?
最簡單的方法是從引用中刪除程序集並嘗試構建項目。所有的錯誤都會告訴你它試圖使用的地方。
如果您在源代碼目錄中運行此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,它會爲您生成解決方案依賴關係的圖表。
這不是我正在尋找的。我需要在代碼庫中使用程序集的某些內容。 – rinukkusu
Gotcha。我會留下它作爲答案,因爲其他人可能會發現它有用,如果它們稍後發生在這個問題上。 –
最簡單的方法是從引用中刪除程序集並嘗試構建項目。所有的錯誤都會告訴你它試圖使用的地方。 – CathalMF
呃,是的 - 那工作得很好哈哈。有時我們只是想太複雜。 – rinukkusu