获取Visual Studio 2010扩展中的项目/参考列表

6
我正在创建一个 Visual Studio 2010 扩展包(Microsoft.VisualStudio.Shell.Package),需要分析所有项目及这些项目的引用。我认为可以使用服务来完成这项任务(例如:Package.GetService(typeof(IMenuCommandService)))。我需要的是包含获取项目和引用列表功能的接口。另外,如果您知道有关可用接口的参考资料在哪里找到,会非常感激。
请注意,我看到有多个人尝试从宏中使用 DTE 进行类似操作。那不是我想做的事情。我正在尝试从 Visual Studio 扩展程序中实现同样的功能。
1个回答

8

即使您是作为扩展的一部分进行此操作,仍然需要使用DTE API获取所需的所有信息。这可能看起来有些反常,但这就是它的工作方式。您应该通过(EnvDTE.DTE)Package.GetService(typeof(SDTE))获取DTE对象。一旦您拥有EnvDTE.Project,访问其Object成员并将其强制转换为VSLangProj.VSProject(如果它是C#或VB项目),这就是您所需要的引用信息。


这似乎有点奇怪,但我已经确认了你的答案。 谢谢! - Matt Ruwe
是的,可靠地获取信息的唯一途径是通过DTE。 这很愚蠢和倒退,但这就是它的工作方式。 - Jason Malinowski
有时你会得到不完整的项目列表:http://stackoverflow.com/questions/33209589/project-names-in-visual-studio-solution-sometimes-are-empty - alerya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接