无法使用tfs vnext中的powershell更改变量

时间:2017-07-12 10:31:00

标签: powershell tfs azure-pipelines tfs2017

技术信息: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命令的任何问题,但我什么都没找到

语法有问题吗?

编辑:测试后,如果我在另一个任务中打印变量,则修改变量。

但是,我想设置自定义源标签。

enter image description here

源标签由变量ProductBuildVersionNum设置。

此变量由构建过程中的脚本修改。

在构建结束时,标签集是变量的初始值。

有没有办法以编程方式设置源标签或强制构建过程使用新的变量值?

1 个答案:

答案 0 :(得分:1)

更改变量后,将对以下步骤生效。因此,您只需要在此之后使用另一个PowerShell任务(如您所见),并且您会发现变量NewValue的值已更改为$(ProductBuildVersionNum)

在Label sources步骤中使用变量作为Label格式,似乎无法检测到更新变量的值。我创建了一个问题here,您可以跟进。

目前,如果您不关心要更改的已完成构建$(Build.BuildNumber)的名称,则解决方法是使用变量$(Build.BuildNumber)更新构建号。步骤如下:

  1. 在“存储库”标签中,将标签格式更改为Write-Host ("##vso[build.updatebuildnumber]$(ProductBuildVersionNum)")
  2. 使用logging命令在当前PowerShell任务(修改变量值)之后添加PowerShell任务:

    <form action="confirm.php" method="post" enctype="multipart/form-data"> <input type="file" name="file1"> <input type="submit" name="order"> </form>