Azure devops 如何将Visual Studio团队服务生成复制到新项目?

Azure devops 如何将Visual Studio团队服务生成复制到新项目?,azure-devops,tfsbuild,azure-pipelines,Azure Devops,Tfsbuild,Azure Pipelines,我正在将一组特定的构建从现有的VisualStudioTeamService项目移动到一个新的项目。不幸的是,我找不到将构建定义从一个项目迁移到另一个项目的方法。似乎没有导入/导出功能或其他机制 有没有办法在不在新项目中手动重新创建生成的情况下移动这些内容?无法在团队项目之间复制或同步vnext生成定义模板。生成定义模板仅适用于当前团队项目。因此,您需要为每个团队项目创建一个构建定义模板 还有一个关于UserVoice的功能请求,您可以投票并监视它 VSO构建vnext:在项目之间共享构建模板

我正在将一组特定的构建从现有的VisualStudioTeamService项目移动到一个新的项目。不幸的是,我找不到将构建定义从一个项目迁移到另一个项目的方法。似乎没有导入/导出功能或其他机制


有没有办法在不在新项目中手动重新创建生成的情况下移动这些内容?

无法在团队项目之间复制或同步vnext生成定义模板。生成定义模板仅适用于当前团队项目。因此,您需要为每个团队项目创建一个构建定义模板

还有一个关于UserVoice的功能请求,您可以投票并监视它

VSO构建vnext:在项目之间共享构建模板


但是,它可以使用API实现。这是你可以用的。(需要在同一个团队项目集合中。)

您可以使用REST API来执行此操作。有


它显示了如何获取构建定义的JSON响应,并再次使用相同的引用在所需的项目中创建新的JSON响应。

您可以执行以下操作:

$project1Url = "http://tfs:8080/tfs/collection/project1/_apis/build/definitions/$($buildId)?api-version=2.0"
$obj = Invoke-RestMethod -Uri $project1Url -Method Get -ContentType "application/json" -UseDefaultCredentials

$obj.project = $null

#TODO: Update all repository/source control info, too.

$json = ConvertTo-Json $obj -Depth 3

$project2Url = "http://tfs:8080/tfs/collection/project2/_apis/build/definitions/?api-version=2.0"
Invoke-RestMethod -Uri $url -Method Post -Body $json -ContentType "application/json" -UseDefaultCredentials

要点是:从源项目(projec1)获取现有定义,清除项目关联,根据需要设置新的存储库信息,并将新定义作为(创建)发送到目标项目(project2).

您现在可以使用Visual Studio Marketplace中的一个扩展。

这现在可以从VSTS生成定义web UI中获得:

.

  • 在源项目导出上(通过…)每个生成定义

  • 在目标项目上,在生成定义的文件夹视图中,新建->导入并调整: 代理池 存储库 路径(稍后在保存导入时查看)

  • 导出成功导入的生成定义

  • 编辑其余提取的生成定义,并替换(使用第一个成功导入的生成定义中的值)代理池、存储库和路径的值
  • 导入其余的生成 查看名称(删除-import后缀) 查看代理池 保存导入的生成时,请查看目标项目文件夹视图中的路径

  • 要修改的构建json负载示例:“vnext”是什么?标签?