C# 是否可以自定义CruiseControl.NET项目的强制构建?
亲爱的无所不知的忍者们,我需要你们的帮助 我有一个CruiseControl.NET项目,它构建C#解决方案并执行一些脚本。每次我使用“调试”MSBuild配置进行提交时,它都会生成项目 我需要的是在强制构建时使用“Debug 2”配置来构建我的项目,但在git commit上构建时,它应该仍然使用“Debug”配置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
是否可以进行这种动态配置?如果是,我应该怎么做?好的,我在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