Vba 如何使用VS宏访问SolutionFolders中的项目?
我知道我可以用宏()迭代解决方案的项目 但我的SLN的顶层包含五个解决方案文件夹。我只获得这五个文件夹,但没有它们的条目 我猜Vba 如何使用VS宏访问SolutionFolders中的项目?,vba,visual-studio,Vba,Visual Studio,我知道我可以用宏()迭代解决方案的项目 但我的SLN的顶层包含五个解决方案文件夹。我只获得这五个文件夹,但没有它们的条目 我猜项目对象的类型可以告诉我它是一个真实的项目还是一个文件夹。但是我找不到任何关于如何找到它的参考资料 编辑: 我知道只有一个解决办法。“解决方案文件夹”是指使用解决方案资源管理器在解决方案中创建的文件夹→ 右键单击解决方案→ 添加→ 新建解决方案文件夹。这将创建一个新的逻辑文件夹,使您有机会在子文件夹中组织解决方案的项目 这会给你一个想法 Sub ListSolution
项目
对象的类型
可以告诉我它是一个真实的项目还是一个文件夹。但是我找不到任何关于如何找到它的参考资料
编辑:
我知道只有一个解决办法。“解决方案文件夹”是指使用解决方案资源管理器在解决方案中创建的文件夹→ 右键单击解决方案→ 添加→ 新建解决方案文件夹。这将创建一个新的逻辑文件夹,使您有机会在子文件夹中组织解决方案的项目 这会给你一个想法
Sub ListSolutionFolders()
Dim solutionFolder As Project
Dim solutionFolders As Projects
Dim name As String
Dim type As String
Dim projects As ProjectItems
Dim project As ProjectItem
solutionFolders = DTE.Solution.Projects
For Each solutionFolder In solutionFolders
name = solutionFolder.Name
projects = solutionFolder.ProjectItems
For Each project In projects
If Not project.SubProject.Kind Is Nothing Then
'this is a real project
type = project.SubProject.Kind
Else
'Not a project
End If
Next
Next
End Sub
请注意类型,它是一个GUID,您可以查看此链接了解它的含义
其他项目类型(如SSRS)未在此处列出,但也会输出GUID,这将为您提供一个想法
Sub ListSolutionFolders()
Dim solutionFolder As Project
Dim solutionFolders As Projects
Dim name As String
Dim type As String
Dim projects As ProjectItems
Dim project As ProjectItem
solutionFolders = DTE.Solution.Projects
For Each solutionFolder In solutionFolders
name = solutionFolder.Name
projects = solutionFolder.ProjectItems
For Each project In projects
If Not project.SubProject.Kind Is Nothing Then
'this is a real project
type = project.SubProject.Kind
Else
'Not a project
End If
Next
Next
End Sub
请注意类型,它是一个GUID,您可以查看此链接了解它的含义
其他项目类型(如SSRS)未在此处列出,但也会输出GUID“解决方案文件夹”没有任何意义,只有一个解决方案。是的,我知道。请参阅更新的问题。“解决方案文件夹”没有任何意义,只有一个解决方案。是的,我知道。请参阅更新的问题。这正是我要找的参考资料!非常感谢。这正是我要找的参考资料!非常感谢。