我一直试图在我的cruisecontrol构建配置文件中使用param无济于事。检查cruisecontrol日志文件时,我尝试传递的任何buildargs都不会传递给对nAnt的调用。
这是一项艰巨的任务:
<nant>
<buildArgs>-D:CCFoo="Unknown" -D:foo="$(foo)"</buildArgs>
<executable>C:\MCR\Trunk\BuildLibrary\NAnt.exe</executable>
<baseDirectory>C:\MCR\Trunk\tek.Build</baseDirectory>
<buildFile>tek.build</buildFile>
<targetList>
<target>cc</target>
</targetList>
<buildTimeoutSeconds>1800</buildTimeoutSeconds>
</nant>
这是nant调用的日志文件中出现的内容:
2010-01-28 08:45:12,815 [TekWebsite:DEBUG] Starting process [C:\MCR\Trunk\BuildLibrary\NAnt.exe] in working directory [C:\MCR\Trunk\tek.Build] with arguments [-nologo -buildfile:tek.build -logger:NAnt.Core.XmlLogger -D:CCNetArtifactDirectory="C:\Program Files (x86)\CruiseControl.NET\server\builds" -D:CCNetBuildCondition=ForceBuild -D:CCNetBuildDate=2010-01-28 -D:CCNetBuildTime=08:45:12 -D:CCNetFailureUsers= -D:CCNetIntegrationStatus=Unknown -D:CCNetLabel=50 -D:CCNetLastIntegrationStatus=Failure -D:CCNetListenerFile="C:\Program Files (x86)\CruiseControl.NET\server\builds\ClarksWebsite_ListenFile.xml" -D:CCNetModifyingUsers= -D:CCNetNumericLabel=50 -D:CCNetProject=TekWebsite -D:CCNetProjectUrl=http://cor-str-mcr08/ccnet/server/local/project/TekWebsite/ViewProjectReport.aspx -D:CCNetRequestSource=Dashboard -D:CCNetWorkingDirectory="C:\Program Files (x86)\CruiseControl.NET\server" cc]
我在想,也许有一个针对cruisecontrol的配置设置告诉它忽略buildargs?
我已尝试重新排序nant任务中的线条,将buildargs置于顶部,如中所示,以及中间和底部的几个位置。我已经尝试了可用于buildargs的不同语法,例如:
-D:CCFoo = “未知” -D:CCFoo =未知 -DCCFoo =未知
答案 0 :(得分:2)
我想出来了 - ccnet守护程序进程使用的ccnet.config文件将不会重新加载构建配置文件,直到:
a)重启过程或
b)以某种方式更改或触摸ccnet.config文件。
所以我刚进入C:\ Program Files(x86)\ CruiseControl.NET \ server.ccnet.config并添加了一个空格,保存了,现在buildargs正在传递给nant。哇噢!
答案 1 :(得分:0)
我遇到了运行一些bat文件的完全相同的问题,但我的理由是我使用过:
<msbuild>
...
而不是
<exec>
...