0

我正在开发一个构建控制器,以协助管理构建和部署。在这个过程中,我有必要为构建指定变更集编号。在 Build Configuration 中,手动执行此操作时,与在 Process | 中设置“Get Version”参数相同。先进的。

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

当 Get Version 留空时,我重复测试,通过代码加载参数,我总是得到最新版本,好像没有指定变更集。

这是我的代码:

    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);
}

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

我错过了什么?

4

1 回答 1

0

而这个:

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

的文档IBuildServer.QueueBuild(IBuildDefinition)说:

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

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

实际上,考虑一下,在请求上设置参数是有道理的,这是您的构建请求,您没有更改定义。

于 2013-08-27T12:33:21.497 回答