目前我正在处理一个大型遗留项目,其中每个 c# 项目文件在构建后事件中都有一个复制作业(使用 C# 编写的自定义工具)。
构建后事件看起来像
"$(MyEnvVar)\_Build\_Binaries\CopyTool" "$(TargetDir)$(TargetName)" "$(MyEnvVar)\_Binaries"
如您所见,复制作业的路径基于环境变量的值。
我现在想构建另一个解决方案,它引用了上面提到的一些项目。
构建失败,因为没有为构建设置环境变量。
Build vNext 定义中的构建步骤顺序:
SetEnv powershell 脚本
[Environment]::GetEnvironmentVariable("MyEnvVar","Process")
Write-Host 'build sources dir'
Write-Host $Env:BUILD_SOURCESDIRECTORY
[Environment]::SetEnvironmentVariable("MyEnvVar", $Env:BUILD_SOURCESDIRECTORY, "Process")
- Visual Studio 构建步骤
- Visual Studio 测试
- ...(索引、发布、复制、发布工件)
但是在 VS 解决方案构建步骤执行的构建后事件中无法访问“MyEnvVar”的值。
如何实现 VS Build 步骤具有先前在 TFS onPremise(不是VSO)上的 powershell 脚本中设置的值?