我必须解析我的解决方案以列出它正在使用的所有文件。
我创造了这个:
Imports EnvDTE
Imports EnvDTE80
Imports Microsoft.VisualBasic
Imports System.Collections
Public Class C
Implements VisualCommanderExt.ICommand
Sub Run(DTE As EnvDTE80.DTE2, package As Microsoft.VisualStudio.Shell.Package) Implements VisualCommanderExt.ICommand.Run
listing(DTE)
End Sub
Sub listing(DTE As EnvDTE80.DTE2)
Dim prj As Project
Dim prjs As Projects
prjs = DTE.Solution.Projects
For Each prj In prjs
Dim item As String
Dim itemEnum as IEnumerator = prj.GetEnumerator()
itemEnum.Reset()
While itemEnum.MoveNext()
item = itemEnum.Current().FullName
My.Computer.FileSystem.WriteAllText("C:\tmp\list.txt", item, True)
End While
Next
End Sub
End Class
不幸的是我遇到了例外:
System.Runtime.InteropServices.COMExcption(0x80020003):找不到会员....
我的解决方案有10个项目。
答案 0 :(得分:0)
导航项目和文件是递归的,因为它们可以嵌套。 看我的文章:
HOWTO:从Visual Studio .NET宏或加载项中导航解决方案的文件。
HOWTO:使用加载项中的IVsHierarchy界面导航解决方案的文件。