使用以下代码给我解决方案文件夹而不是真实项目。
projectName = DTE.Solution.SolutionBuild.StartupProjects(0)
For Each project In DTE.Solution.Projects
If project.UniqueName = projectName Then
Return project
End If
Next
有什么方法可以遍历实际的项目节点吗?
我正在尝试从启动项目中读取属性。
最佳答案
我从未编写过任何 Visual Studio 宏,但这可能就是您要找的。p>
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
我在那里留下了一个“TODO”,因为如果您要处理嵌套(子)项目,您需要实际将其提取到一个可以递归调用的函数中。
我从 this link 得到了这个解决方案,虽然它是 Visual Studio 2005 时代的 Material ,但它可能会让您朝着正确的方向前进。
关于visual-studio - Visual Studio 宏列出项目而不是解决方案文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5464936/