团队,
我有一个 powershell 脚本,它调用 MSBUILD.exe 在 Azure devops Build 管道中运行构建以打包它。当前脚本使用 vs12。当它与 vs 12 一起运行时,我遇到了以下错误。
错误 MSB4019:找不到导入的项目“C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets”。确认声明中的路径正确,并且该文件存在于磁盘上。
因此,根据我的一位同事的建议,我不得不将其从 vs 12 更改为 vs 15,并为 MSBUILD 硬编码以下路径。
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\
并且构建运行良好。所以现在,我想在我的 powershell 脚本中使用 ENV 作为这个路径,以便它动态地选择它。
下面是运行 MS build 的函数。
Function Get-MSBuild {
$lib = [System.Runtime.InteropServices.RuntimeEnvironment]
$rtd = $lib::GetRuntimeDirectory()
Join-Path $rtd msbuild.exe}
上面的代码在我的代理上失败,我遇到文件存在磁盘错误。我用 msbuild 路径替换了 $lib。如下。
Function Get-MSBuild {
$lib = "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\"
Join-Path $lib msbuild.exe
}
上面的代码工作正常,但我想使用 env 或一些预定义的环境变量动态生成路径。
现在,我的问题是是否有一个预定义的环境变量来动态获取路径
"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\"
提前感谢您的帮助。