Visual Studio Automation: программно получить выходной каталог проекта - PullRequest
1 голос
/ 02 марта 2010

Я хочу программно получить выходной каталог проекта в макросе Visual Studio.
Мне удалось получить строку пути (через prj.ConfigurationManager.ActiveConfiguration.Properties и просмотреть свойство OutputDirectory), но эта строка может содержать макросы, такие как $ (foo), где foo определен в листе свойств или еще много чего. .

Как мне преобразовать эту строку выходного каталога в «настоящий» каталог?

1 Ответ

2 голосов
/ 04 октября 2011

Я написал эту функцию для своих макросов, которые ищут полный абсолютный путь вывода по подстроке.

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
...