2014-03-25 49 views

回答

2

源文件不是解決方案的一部分。它們是項目的一部分,而項目又是解決方案的一部分。儘管源文件本身沒有成爲項目一部分的概念。該項目有一個參考文件,但沒有其他方法。一個源文件可以是多個項目的一部分,這可能是不同解決方案的一部分。

你可以做的是解析SLN和VBPROJ/CSPROJ /任何文件,看看哪些文件引用了特定的源文件。這些文件只是文本,包含有關解決方案或項目的各種信息,包括哪些項目是解決方案的一部分,哪些文件是項目的一部分。您可以遞歸地解析文件夾中的文件以構建代表解決方案中的項目中的文件的整個樹。

請注意,大多數文件將由項目文件中的相對路徑引用。

+0

好的,我找到了一種使用LOCATE32工具的方法,它是免費的。 (Windows搜索也可以) 1.搜索全部* .csproj包含文本「SourceFileName.cs」 2.您將找到該文件所屬的項目。 3.搜索包含「ProjectNameFoundInStep2.csproj」的所有SLN文件 4.您將獲得所有解決方案 – Sabz

0

Visual Commander開始,然後您可以使用Visual Studio的Automation and Extensibility for Visual Studio API以編程方式訪問您的解決方案「DOM風格」。用.NET語言編寫一個VS命令,將解決方案遍歷到項目中,然後寫入項目項目中,將所有找到的文件(項目項目)轉儲到日誌文件,數據庫,Web服務中,你有什麼。

關於如何導航Visual Studio的DTE,請參見本文HOWTO: Navigate the files of a solution from a Visual Studio .NET macro or add-in

我知道SO對只包含鏈接而不是真正幫助的答案感到滿意,但EnvDTE的各種風格的文檔非常豐富,任何用於演示如何使用它的代碼示例都非常大。所以我只是給你這個強有力的提示:看看Visual Studio的可擴展性模型,並通過Visual Commander輕鬆掛鉤它,它可以完成在Visual Studio擴展中包裝代碼的所有工作。從那裏你可以使用任何合理的技術(MSBuild,PowerShell,批處理文件)將每個解決方案加載到VS並運行你的新命令。

這實際上回答了這個問題:對於我的數以千計的解決方案中使用的所有源文件,哪些解決方案使用它們。但是我發現你(@Sabz)在下面的評論中給出了一種合理的方式來一次回答一個源文件的問題,這更確切地說是你所問的。

N.B .:我還沒有使用Visual Commander,所以我只是假設它可以像廣告一樣工作。

相關問題