cruisecontrol <buildargs> nant参数未传递</buildargs>

时间:2010-01-28 09:43:54

标签: cruisecontrol.net nant cruisecontrol

我一直试图在我的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 =未知

2 个答案:

答案 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>
  ...