2

我一直在尝试使用我的 Cruisecontrol 构建配置文件中的参数无济于事。检查巡航控制日志文件时,我尝试传递的任何 buildargs 都不会传递给对 nAnt 的调用。

这是 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=未知

4

2 回答 2

2

我想通了 - ccnet 守护进程使用的 ccnet.config 文件不会重新加载构建配置文件,直到:

a) 进程重新启动或
b) ccnet.config 文件以某种方式被更改或触及。

所以我只是进入 C:\Program Files (x86)\CruiseControl.NET\server.ccnet.config 并添加了一个空间,保存,现在 buildargs 正在传递给 nant。呜呼!

于 2010-01-28T09:47:52.600 回答
0

我在运行一些 bat 文件时遇到了完全相同的问题,但我的原因是我使用过:

<msbuild>
  ...

代替

<exec>
  ...
于 2016-07-27T02:03:30.787 回答