我正在构建一个构建控制器,以协助构建和部署的管理。在此过程中,我需要指定构建的变更集编号。 在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);
}
看起来构建定义可能在两种情况之间包含不同的值,但我无法找到它。
我错过了什么?
答案 0 :(得分:0)
相反:
var request = def.CreateBuildRequest();
request.GetOption = GetOption.Custom;
request.CustomGetVersion = "C1234";
server.QueueBuild(request);
IBuildServer.QueueBuild(IBuildDefinition)
的文档说:
使用所有默认值为指定的构建定义对构建进行排队 选项。
我猜它没有使用传入定义中的大部分参数。
实际上,考虑到这一点,在请求上设置参数是有道理的,这是你的构建请求,你没有改变定义。