我有一些在ProjectX下创建的TFS 2010构建定义。现在,源代码已移至ProjectY的下一个文件夹。如何将构建定义移动到ProjectY,以使其显示在ProjectY的Team Explorer的Builds节点下?

最佳答案

我认为没有现成的东西可以将构建定义从一个项目复制到另一个项目。但是,您应该可以使用TFS API来做到这一点。您将需要将Pete所指的构建过程模板移动到新项目的Build Process Template文件夹中。之后,您将执行以下操作:

var server = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("<server uri>"));

IBuildServer buildServer = server.GetService<IBuildServer>();
var buildDetails = buildServer.QueryBuildDefinitions("Project X");
foreach(var build in buildDetails)
{
        var buildDefinition = buildServer.CreateBuildDefinition("Project Y");
        buildDefinition.Name = "Copy of " + build.Name;
        buildDefinition.BuildController = build.BuildController;
        // This finds the template to use
        buildDefinition.Process = buildServer.QueryProcessTemplates("Project Y")[0];
        buildDefinition.ProcessParameters = build.ProcessParameters;
        buildDefinition.Save();
}


需要注意的几件事。您将需要处理将工作空间映射从一个项目转换到另一个项目的问题。您还需要更改buildDefinition.Process行以找到特定模板。

08-26 15:41