技术信息:2017年TFS 2017(15.112.26307.0)与VS 2017
我的进程中有一个名为TestVar的变量,默认值设置为“Test”。
在我的构建过程中,我有一个PowerShell任务调用脚本。 我想更改TestVar的值,所以在我的脚本中,我有这些行:
echo $Env:TestVar
$newValue = "NewValue"
Write-Host ("##vso[task.setvariable variable=TestVar;]$newValue")
echo $Env:TestVar
但是,在我的构建输出中,值不会更改:
Test
Test
我查找了vsts-tasks命令的任何问题,但我什么都没找到
语法有问题吗?
编辑:测试后,如果我在另一个任务中打印变量,则修改变量。
但是,我想设置自定义源标签。
源标签由变量ProductBuildVersionNum设置。
此变量由构建过程中的脚本修改。
在构建结束时,标签集是变量的初始值。
有没有办法以编程方式设置源标签或强制构建过程使用新的变量值?
答案 0 :(得分:1)
更改变量后,将对以下步骤生效。因此,您只需要在此之后使用另一个PowerShell任务(如您所见),并且您会发现变量NewValue
的值已更改为$(ProductBuildVersionNum)
。
在Label sources步骤中使用变量作为Label格式,似乎无法检测到更新变量的值。我创建了一个问题here,您可以跟进。
目前,如果您不关心要更改的已完成构建$(Build.BuildNumber)
的名称,则解决方法是使用变量$(Build.BuildNumber)
更新构建号。步骤如下:
Write-Host ("##vso[build.updatebuildnumber]$(ProductBuildVersionNum)")
。使用logging命令在当前PowerShell任务(修改变量值)之后添加PowerShell任务:
<form action="confirm.php" method="post" enctype="multipart/form-data">
<input type="file" name="file1">
<input type="submit" name="order">
</form>
。