技術的相關信息:與2017年VS無法使用PowerShell在TFS改變可變vnext
TFS 2017年(15.112.26307.0)我有一個在我的設置爲「測試」默認值的過程稱爲的testvar變量。
在我的構建過程中,我有一個調用腳本的PowerShell任務。 我想改變的testvar的價值,所以在我的劇本,我有這些行:
echo $Env:TestVar
$newValue = "NewValue"
Write-Host ("##vso[task.setvariable variable=TestVar;]$newValue")
echo $Env:TestVar
然而,在我的生成輸出,該值不會改變:
Test
Test
我找了任何與vsts-tasks命令有關的問題,但我什麼都沒發現
在語法中是否有任何問題?
編輯:經過測試,如果我在另一個任務中打印它,變量會被修改。
但是,我想設置自定義源標籤。
源標籤由可變ProductBuildVersionNum設置。
此變量由構建過程上的腳本修改。
在構建結束時,標籤集是變量的初始值。
有沒有什麼辦法以編程方式設置源標籤或強制構建過程使用新的變量值?
您的'寫主機'行不會改變它只是將文本輸出到控制檯。你不能只是'$ Env:TestVar = $ newValue'? –
您可以使用Write-Host調用日誌記錄命令,如https://github.com/Microsoft/vsts-tasks/blob/master/docs/authoring/commands中所述。md,而且,我想更改變量值並在構建過程上下文中保留其值。 – Zysce
有趣!我的猜測是變量'$ newValue'不能被這個任務訪問,但是我希望它變成空白。如果你做了Write-Host(「## vso [task.setvariable variable = TestVar;]'NewValue'」)' –