更新发布定义后丢失的工作流任务(任务组)

Lost workflowtask (task group) after updated release definition

我发布的定义不仅仅是环境(QA、Stage...)。在环境中,我有代理阶段。在代理阶段,我有任务组。最初,发布定义具有触发选项(QA - 自动,阶段 - 手动)。我想做的是:

  1. 下载版本定义

  2. 更新发布定义(只需将Stage环境的触发选项从手动更改为自动)

  3. 导入版本定义。

我下载、更新和导入发布定义后,代理阶段名称自动更改为与环境同名,任务组丢失。我查看了历史记录并进行了比较,我看到代理阶段名称已更改,并且所有环境的整个 Workflowtask 部分都消失了。我检查了我下载和更新的 json 文件,它确实有 workflowtask 部分。我错过了什么或者这是一个错误?下面是我的 powershell 脚本。请指教

$releaseuri = $tpcUri + "/" + $teamprojectname + "/_apis/Release/definitions/" + $releaseid # + "?api-version=4.0-preview.3"

Write-Host $releaseuri
$releasetemplate = $downloadlocation + "\" + $releasetemplatename
Write-Host $releasetemplate
# Get release definition and save to local computer
$Jsonfile = Invoke-RestMethod -Uri $releaseuri -Method Get -UseDefaultCredentials
$Jsonfile | ConvertTo-Json -depth 100 | Out-File $releasetemplate

$ReleaseFile = "C:\DevOps\updatedmytest1.json"

#import release definition
$Uri = $tpcUri + "/" + $teamprojectname + "/_apis/release/definitions?api-version=3.0-preview.2"
Write-Verbose "URI: $uri"
Write-Host "Importing release definition........"
$release = gc $ReleaseFile -Raw -ea Stop
$result = Invoke-RestMethod -Method Post -UseDefaultCredentials -ContentType application/json -Uri $Uri -Body $release

此致, 安迪范

根据您代码中的这一部分:

$Uri = $tpcUri + "/" + $teamprojectname + "/_apis/release/definitions?api-version=3.0-preview.2"

请使用其他版本的 Rest API 版本,而不是 3.0-preview.2。这个问题应该是你正在使用的 Rest API 版本。

根据 MSDN 中的 tutorials

api-version

Required. Version of the API to use. This should be set to '4.0-preview.3' to use this version of the API.

也看看这个类似的问题: