如何在VSTS中将一个PBI的任务复制到另一个PBI?
如何在VSTS中将一个PBI的任务复制到另一个PBI?
我之前也碰到过这个需求,VSTS(现在已经正式更名为Azure DevOps Services了)确实没有直接的一键复制PBI任务到另一个PBI的内置功能,但有几个实用的办法可以解决:
方法一:手动逐个复制(适合任务数量少的场景)
如果需要复制的任务不多,手动操作是最直接的方式:
- 打开源PBI,找到关联的任务列表,点击目标任务的标题进入详情页
- 在任务详情页右上角,点击
...更多选项,选择复制工作项 - 在弹出的复制窗口中,调整以下关键设置:
- 保持工作项类型为“任务”(默认会继承原任务的类型)
- 在父链接区域,点击「添加链接」,选择“父项”,然后搜索并选中目标PBI
- 按需修改其他字段,比如指派对象、状态、描述等
- 点击确定完成复制,重复步骤直到所有需要的任务都复制完毕
方法二:批量复制脚本(适合任务数量多的场景)
如果要复制大量任务,用脚本批量处理能节省不少时间,这里给一个PowerShell的示例(需要先安装Azure DevOps PowerShell模块):
# 配置你的组织和项目参数 $orgUrl = "https://dev.azure.com/你的组织名称" $projectName = "你的项目名称" $sourcePbiId = 1234 # 替换为源PBI的ID $targetPbiId = 5678 # 替换为目标PBI的ID # 登录Azure DevOps Connect-AzDevOps -Organization $orgUrl # 获取源PBI下的所有子任务 $sourceTasks = Get-AzDevOpsWorkItem -Project $projectName -Id $sourcePbiId | Select-Object -ExpandProperty Relations | Where-Object { $_.Rel -eq "System.LinkTypes.Hierarchy-Forward" } | ForEach-Object { Get-AzDevOpsWorkItem -Project $projectName -Id $_.Target.Id } # 循环复制任务并关联到目标PBI foreach ($task in $sourceTasks) { # 创建新任务 $newTask = New-AzDevOpsWorkItem -Project $projectName -WorkItemType "Task" ` -Title $task.Title -Description $task.Description # 将新任务关联为目标PBI的子项 Add-AzDevOpsWorkItemLink -WorkItemId $newTask.Id -TargetId $targetPbiId ` -LinkType "System.LinkTypes.Hierarchy-Reverse" Write-Host "已完成任务复制: $($task.Title)" }
温馨提示:运行脚本前,需要以管理员身份执行
Install-Module -Name Az.DevOps来安装所需模块。
方法三:借助第三方扩展(可选)
Azure DevOps Marketplace有不少第三方扩展支持批量复制工作项及关联关系,你可以在组织的「市场」中搜索类似「Work Item Copy」或「Bulk Copy Work Items」的工具,这些扩展通常能一键复制PBI及其所有子任务,还能保留原有的字段配置。
内容的提问来源于stack exchange,提问作者Amir
相关产品推荐
相关产品推荐

