我正在尝试以相当直接的方式使用 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
/帮助”
当我查看 ccnet.log 文件时,我发现:
正在工作中启动进程 [C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\MSBuild.exe]
目录 [c:\depot\AppBuilder\1.0] 带有参数 [/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=失败;CCNetNumericLabel=3;CCNetProject=AppBuilder 1.0(调试);CCNetProjectUrl=http://CISERVER01/ccnet;CCNetRequestSource=jstong 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(调试)\工件\msbuild-results.xml"]
我从中推断 msbuild 是在正确的工作目录中运行的,并且传递给它的命令行是:
/nologo "/p:CCNetArtifactDirectory=C:\Program Files\CruiseControl.NET\server\AppBuilder 1.0(调试)\Artifacts;CCNetBuildCondition=ForceBuild;CCNetBuildDate=2009-01-22;CCNetBuildTime=09:25:55;CCNetIntegrationStatus=未知;CCNetLabel=3;
CCNetLastIntegrationStatus=失败;CCNetNumericLabel=3;CCNetProject=AppBuilder 1.0(调试);CCNetProjectUrl=http://CISERVER01/ccnet;CCNetRequestSource=jstong 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(调试)\工件\msbuild-results.xml"
如果我在命令行手动运行它,我会收到类似的错误。
在我看来,没有将正确的命令行传递给 MSBuild 可执行文件。
你能发现我的错误吗?或者这个版本的 CruiseControl.NET (1.3.0.2918) 是否无法完成任务?
我想也许是你的工件目录路径中的空间。 MSBuild 确实不喜欢空格,因为它认为空格是参数之间的分隔符。您可以尝试删除该路径中的空格并看看会发生什么吗?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)