我从未编写过任何 Visual Studio 宏,但这可能是您正在寻找的。
projectName = DTE.Solution.SolutionBuild.StartupProjects(0)
For Each project In DTE.Solution.Projects
If (project.ConfigurationManager IsNot Nothing) Then
' It's a project!
If (project.UniqueName = projectName) Then Return project
Else
If (project.ProjectItems IsNot Nothing) Then
For Each projectItem In project.ProjectItems
If (projectItem.SubProject IsNot Nothing) Then
' TODO: Recurse on projectItem.SubProject
End If
Next
End If
End If
Next
我在那里留下了一个“待办事项”,因为如果您要处理嵌套(子)项目,您实际上需要将其拉出到一个可以递归调用的函数中。
我从这个链接得到了这个解决方案,虽然它是 Visual Studio 2005 时代的材料,但它可能会让你朝着正确的方向前进。