Parse solution using DTE Visual Basic

0

I have to parse my solution to list all files that it is using.

I have created this:

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

Unfortunately I encounter the Exception:

System.Runtime.InteropServices.COMExcption(0x80020003): Member not found....

My solution has 10 projects.

vb.net
vba
envdte
asked on Stack Overflow Jul 28, 2015 by Mateusz SzymaƄski • edited Sep 6, 2015 by aLearningLady

1 Answer

0

Navigating projects and files is recursive because they can be nested. See my articles:

HOWTO: Navigate the files of a solution from a Visual Studio .NET macro or add-in.

HOWTO: Navigate the files of a solution using the IVsHierarchy interface from an add-in.

http://www.visualstudioextensibility.com/articles/add-ins/

answered on Stack Overflow Jul 28, 2015 by Carlos Quintero

User contributions licensed under CC BY-SA 3.0