获取解决方案中的所有启动项目

Get all startup projects in solution

正如标题所暗示的那样,我想查询 IVsSolution/IVsHierarchy 中设置的所有启动项目,我也很想在不需要 DTE 的情况下实现这一点。因此 DTE2.Solution.SolutionBuild.StartupProjects 对我来说并不是一个合适的选择。我查看了 MSDN,但没有找到我需要的东西。我遇到了 IVsSolutionManager with its get_StartupProject 方法。不幸的是,它只会 return 一个 单个 启动项目。这甚至可以使用 DTE?

看来,EnvDTE.Solution.SolutionBuild.StartupProjects是唯一的办法。我浏览了底层 VS IDE 代码库,启动项目由内部 C++ class 上的内部标志表示,跟踪所有加载的项目。不幸的是,那个特定的 class 或它的 m_dwStartupOpt 成员都没有直接(或间接暴露。

所以您的 best/only 选项是使用 StartupProjects 属性。

此致,