C# 是否可以自定义CruiseControl.NET项目的强制构建?

C# 是否可以自定义CruiseControl.NET项目的强制构建?,c#,git,msbuild,continuous-integration,cruisecontrol.net,C#,Git,Msbuild,Continuous Integration,Cruisecontrol.net,亲爱的无所不知的忍者们,我需要你们的帮助 我有一个CruiseControl.NET项目,它构建C#解决方案并执行一些脚本。每次我使用“调试”MSBuild配置进行提交时,它都会生成项目 我需要的是在强制构建时使用“Debug 2”配置来构建我的项目,但在git commit上构建时,它应该仍然使用“Debug”配置 是否可以进行这种动态配置?如果是,我应该怎么做?好的,我在CC文档中找到了条件 <conditional> <conditions> <b

亲爱的无所不知的忍者们,我需要你们的帮助

我有一个CruiseControl.NET项目,它构建C#解决方案并执行一些脚本。每次我使用“调试”MSBuild配置进行提交时,它都会生成项目

我需要的是在强制构建时使用“Debug 2”配置来构建我的项目,但在git commit上构建时,它应该仍然使用“Debug”配置


是否可以进行这种动态配置?如果是,我应该怎么做?

好的,我在CC文档中找到了条件

<conditional>
  <conditions>
    <buildCondition>
      <value>ForceBuild</value>
    </buildCondition>
  </conditions>
  <tasks>
    <!-- Tasks to perform if condition passed -->
  </tasks>
  <elseTasks>
    <!-- Tasks to perform if condition failed -->
  </elseTasks>
</conditional>

强制构建

另一个选项是检查构建脚本中的构建条件。 生成脚本可以是nant、msbuild、批处理等。。。。 这些语言通常为if提供更多选项,而。。。而不是ccnet.config文件本身

这使ccnet.config更加干净,所有的神奇都发生在构建脚本中。它还使得在不影响构建服务器的情况下更容易测试更改

查看传递给他们的属性:

使用ccnet参数

例如:

<booleanParameter>
 <name>Configuration</name>
 <true name="Debug2">Yes</true>
 <false name="Debug">No</false>
 <display>Configuration</display>
 <description>Do you want to build Debug 2?</description>
 <default>Debug</default>
 <required>false</required>
</booleanParameter>

配置
对
不
配置
是否要生成调试2?
调试
假的
使用它:

<tasks>
 <nant>
  <executable>nant.exe</executable>
  <buildArgs>-D:config=$[Configuration|Debug]</buildArgs>
 ...
 </nant>
</tasks>

nant.exe
-D:config=$[配置|调试]
...
config作为属性传递给Nant