我想以编程方式在 Visual Studio 宏中获取项目输出目录。
我设法获得了路径字符串(通过prj.ConfigurationManager.ActiveConfiguration.Properties
并查看属性OutputDirectory
),但该字符串可能包含诸如 $(foo) 之类的宏,其中 foo 在属性表中定义或诸如此类。
如何将此输出目录字符串解析为“真实”目录?
我想以编程方式在 Visual Studio 宏中获取项目输出目录。
我设法获得了路径字符串(通过prj.ConfigurationManager.ActiveConfiguration.Properties
并查看属性OutputDirectory
),但该字符串可能包含诸如 $(foo) 之类的宏,其中 foo 在属性表中定义或诸如此类。
如何将此输出目录字符串解析为“真实”目录?
我为我的宏编写了这个函数,它通过子字符串搜索完整的绝对输出路径。
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