无法获取指定的变更集

时间:2013-08-26 20:57:26

标签: tfs2012 tfsbuild tfs-sdk

我正在构建一个构建控制器,以协助构建和部署的管理。在此过程中,我需要指定构建的变更集编号。 在Build Configuration中,手动执行此操作时,与设置" Get Version"相同。 Process |中的参数高级。

当我在UI中设置此值时,我可以在获取构建定义时对其进行修改。我所做的修改使构建按预期工作。

当Get Version留空时,我重复测试,通过代码加载params,我总是得到最新的版本,就像没有指定更改集一样。

这是我的代码:

    foreach (IBuildDefinition def in BuildDefinitions.SelectedItems)
{
    var process = WorkflowHelpers.DeserializeProcessParameters(def.ProcessParameters);                     
    process.Add("GetVersion", "C1111");
    // process["GetVersion"] = "C1133";
    def.ProcessParameters = WorkflowHelpers.SerializeProcessParameters(process);
    IQueuedBuild result = buildServer.QueueBuild(def);
}

看起来构建定义可能在两种情况之间包含不同的值,但我无法找到它。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

相反:

var request = def.CreateBuildRequest();
request.GetOption = GetOption.Custom;
request.CustomGetVersion = "C1234";
server.QueueBuild(request);

IBuildServer.QueueBuild(IBuildDefinition)的文档说:

  

使用所有默认值为指定的构建定义对构建进行排队   选项。

我猜它没有使用传入定义中的大部分参数。

实际上,考虑到这一点,在请求上设置参数是有道理的,这是你的构建请求,你没有改变定义。