1

VisualStudioマクロでプロジェクト出力ディレクトリをプログラムで取得したい。
私はなんとかパスの文字列を取得できましたが(prj.ConfigurationManager.ActiveConfiguration.Propertiesプロパティを介して見てOutputDirectory)、この文字列には$(foo)などのマクロが含まれている可能性があります。ここでfooはプロパティシートなどで定義されています。

この出力ディレクトリ文字列を「実際の」ディレクトリに解決するにはどうすればよいですか?

4

1 に答える 1

2

この関数は、サブストリングによって完全な絶対出力パスを検索するマクロ用に作成しました。

Function FindOutBinaryNameByExtension(ByVal prj As EnvDTE.Project, ByVal extName As String) As String
    FindOutBinaryNameByExtension = Nothing

    Dim cm As ConfigurationManager = prj.ConfigurationManager
    If cm IsNot Nothing Then
        Dim ac As Configuration = cm.ActiveConfiguration
        For Each grpOut In ac.OutputGroups
            If grpOut.DisplayName = "Primary output" Then
                Dim lst As Array = grpOut.FileURLs
                For i As Long = 0 To lst.Length - 1
                    Dim fileName As String = lst.GetValue(i)
                    If fileName.Contains(extName) Then
                        FindOutBinaryNameByExtension = fileName
                        Exit Function
                    End If
                Next
            End If
        Next
    End If
End Function
于 2011-10-04T02:25:34.847 に答える