1

マクロを使用してソリューションのプロジェクトを反復できることを知っています (多かれ少なかれ)。

しかし、SLN のトップ レベルには 5 つのソリューション フォルダーが含まれています。これらの 5 つのフォルダーのみを取得しますが、それらのエントリは取得しません。

Kindオブジェクトのは、Projectそれが実際のプロジェクトなのか単なるフォルダーなのかを教えてくれると思います。しかし、それを見つける方法の参考文献が見つかりません。


編集:
解決策が 1 つしかないことはわかっています。「ソリューション フォルダー」とは、Solution Explorer → Right Click Solution → Add → New Solution Folderを使用してソリューション内に作成されたフォルダーを意味します。これにより、ソリューションのプロジェクトをサブフォルダーに整理できる新しい論理フォルダーが作成されます。

4

1 に答える 1

1

これはあなたにアイデアを与えるでしょう

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 であり、その意味についてはこのリンクを参照して ください http://msdn.microsoft.com/en-us/library/hb23x61k%28v=vs.80%29.aspx その他のプロジェクト タイプSSRSのようにそこにはリストされていませんが、GUIDも出力します

于 2012-10-30T23:18:48.243 に答える