Синтаксис "##vso[task.setvariable variable=TestVar;]$testVar"
заключается в обновлении значения переменной только для этой сборки, а не для будущих сборок.
Если вы хотите обновить список переменных сборки, вам нужно обновить определение сборки с помощью Rest API .
Пример сценария PowerShell, который делает это:
$head = @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN" }
$url="$(System.TeamFoundationCollectionUri)$(System.TeamProject)/_apis/build/definitions/$(System.DefinitionId)?api-version=5.0"
$build = Invoke-RestMethod -Uri $url -Method Get -Headers $head -ContentType application/json
$build.variables.TestVar.value = "updated"
$json = $build | ConvertTo-Json -Depth 10
Invoke-RestMethod -Uri $url -Method Put -Headers $head -Body $json -ContentType application/json