Mettre à jour la valeur de la variable de version Azure dans PowerShell
J'ai la variable de version $ (ecomm) = Oui, dans Azure Release Pipeline

Grâce à Powershell, je souhaite mettre à jour la valeur de $ (ecomm) = Non
Write-Host "Before update: "$(ecomm) Write-Host "##vso[task.setvariable variable=ecomm;]No" Write-Host "After update: "$(ecomm)
Mais la valeur ne se met pas à jour. Pouvez-vous s'il vous plaît m'aider à ce sujet. Merci d'avance.
Réponses
Repcak a raison.
Lorsque vous utilisez la commande de journalisation pour définir des variables dans Powershell, vous pouvez uniquement modifier la valeur de la variable dans Pipeline Run au lieu de la définition de version.
Pour mettre à jour la définition de version dans la tâche Powershell, vous pouvez essayer les paramètres de pipeline suivants:
Ajoutez deux tâches Powershell.
La première tâche PowerShell exécute le script suivant:
Write-Host "##vso[task.setvariable variable=ecomm;]No"
Ce script est utilisé pour mettre à jour les valeurs des variables lors de l'exécution du pipeline.
La deuxième tâche Powershell exécute le script suivant:
$url = "$($env:SYSTEM_TEAMFOUNDATIONSERVERURI)$env:SYSTEM_TEAMPROJECTID/_apis/Release/definitions/$($env:RELEASE_DEFINITIONID)?api-version=5.0-preview.3"
Write-Host "URL: $url" $pipeline = Invoke-RestMethod -Uri $url -Headers @{ Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
Write-Host "Pipeline = $($pipeline | ConvertTo-Json -Depth 100)"
$pipeline.variables.ecomm.value = "$(ecomm)"
$json = @($pipeline) | ConvertTo-Json -Depth 99
$updatedef = Invoke-RestMethod -Uri $url -Method Put -Body $json -ContentType "application/json" -Headers @{Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"}
Remarque: vous devez également définir certaines options de publication :
Sélectionnez l'option:
Allow scripts to access the OAuth token
dansReleases -> Agent Job
Accordez l'
Edit release pipeline
autorisation au rôle:Project Collection Build Service (OrgName)
Résultat:

Pour plus d'informations, vous pouvez vous référer à ce ticket .
La façon dont vous le faites, il met à jour uniquement la variable pour l'exécution de pipeline donnée. Azure Pipelines importe ces variables à partir de l'interface que vous affichez, puis vous pouvez les remplacer (l'instance de la variable importée). Pour modifier la variable dans l'interface classique, vous devez effectuer un appel d'API à AzureDevops.