我正在尝试使用 CruiseControl.NET 版本 1.3.0.2918 中的任务,并且相当简单:
<project name="AppBuilder 1.0 (Debug)">
<workingDirectory>c:\depot\AppBuilder\1.0\</workingDirectory>
<triggers/>
<tasks>
<msbuild/>
</tasks>
</project>
但是,当项目运行时,它会在构建日志中显示以下信息:
MSBUILD : 错误 MSB1008: 只能指定一个项目。开关:1.0
对于切换语法,键入“MSBuild /help”
当我查看 ccnet.log 文件时,我发现:
使用参数 [/nologo "/p:CCNetArtifactDirectory=C:\Program 在工作目录 [c:\depot\AppBuilder\1.0] 中启动进程 [C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe] Files\CruiseControl.NET\server\AppBuilder 1.0(调试)\Artifacts;CCNetBuildCondition=ForceBuild;CCNetBuildDate=2009-01-22;CCNetBuildTime=09:25:55;CCNetIntegrationStatus=Unknown;CCNetLabel=3;CCNetLastIntegrationStatus=Failure;CCNetNumericLabel= 3;CCNetProject=AppBuilder 1.0 (调试);CCNetProjectUrl= http://CISERVER01/ccnet;CCNetRequestSource=jstong ; CCNetWorkingDirectory=c:\depot\AppBuilder\1.0\" ""/l:ThoughtWorks.CruiseControl.MsBuild.XmlLogger,ThoughtWorks. CruiseControl.MsBuild.dll;C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts\msbuild-results.xml"]
从中我推断 msbuild 在正确的工作目录中运行,并且传递给它的命令行是:
/nologo "/p:CCNetArtifactDirectory=C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts;CCNetBuildCondition=ForceBuild;CCNetBuildDate=2009-01-22;CCNetBuildTime=09:25:55;CCNetIntegrationStatus=未知;CCNetLabel=3;CCNetLastIntegrationStatus=Failure;CCNetNumericLabel=3;CCNetProject=AppBuilder 1.0(调试);CCNetProjectUrl= http://CISERVER01/ccnet;CCNetRequestSource=jstong;CCNetWorkingDirectory=c:\depot\AppBuilder\1.0\""/ l:ThoughtWorks.CruiseControl.MsBuild.XmlLogger,ThoughtWorks.CruiseControl.MsBuild.dll;C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0 (Debug)\Artifacts\msbuild-results.xml"
如果我在命令行手动运行它,我会得到一个类似的错误。
在我看来,没有将正确的命令行传递给 MSBuild 可执行文件。
你能发现我的错误吗?或者这个版本的 CruiseControl.NET (1.3.0.2918) 是否与任务有关?