2012-05-13 80 views
5

我正在創建需要分析所有項目和項目引用的Visual Studio 2010擴展包(Microsoft.VisualStudio.Shell.Package)。我認爲這是通過服務完成的(例如Package.GetService(typeof(IMenuCommandService)))。我需要的是包含功能的界面,以獲得這些項目的項目列表和參考。此外,任何有關在哪裏可以找到包含Visual Studio中可用接口的引用的建議都將非常感激。獲取Visual Studio 2010擴展中的項目/引用列表

請注意,我已經看到多個人試圖使用宏中的DTE做類似的事情。這不是我想要做的。我試圖從Visual Studio擴展中做同樣的事情。

回答

7

因此,即使您將此作爲擴展的一部分來執行,仍需要使用DTE API來獲取所需的所有信息。它可能看起來倒退,但這就是它的工作原理。您應該通過(EnvDTE.DTE)Package.GetService(typeof(SDTE))獲取DTE對象。一旦你有一個EnvDTE.Project,訪問它的對象成員,並將其轉換爲VSLangProj.VSProject,如果它是C#或VB項目。這有你需要的參考信息。

+0

這似乎有點奇怪,但我已經證實了你的答案。謝謝! –

+0

是的,唯一能夠可靠獲取信息的方法是通過DTE。這是愚蠢和倒退,但這就是它的工作原理。 –

+0

有時你不會得到所有的項目:http://stackoverflow.com/questions/33209589/project-names-in-visual-studio-solution-sometimes-are-empty – alerya

相關問題