我刚刚开始使用CruiseControl.Net建立持续集成服务器。为了简单起见,我使用Visual Studio Task来执行构建,将其指向项目解决方案文件。但是,当构建过程发生时,CC.Net成功从Subversion获取最新的源版本,并且似乎运行devenv命令。然后构建过程失败,但没有解释原因。这是输出:
建立失败
项目:MyProject
建造日期:2009-09-09 16:31:13
运行时间:00:00:49
集成请求:仪表板触发了构建(ForceBuild)自上次构建(0)以来的修改
测试运行:0,失败:0,未运行:0, 时间:0秒无测试运行此 项目没有任何测试
页面上没有显示任何其他内容。我的XML日志也没有显示任何构建结果。
这是我的配置文件:
<!--<ccnetconfig><configurationVersion>1.4</configurationVersion></ccnetconfig>-->
<cruisecontrol>
<project name="MyProject">
<workingDirectory>C:\Users\Builder\Desktop\builder-pc\MyProject</workingDirectory>
<sourcecontrol type="svn">
<trunkUrl>svn://builder-pc/MyProject/trunk</trunkUrl>
<workingDirectory>C:\Users\Builder\Desktop\builder-pc\MyProject</workingDirectory>
<executable>C:\Program Files\Subversion\bin\svn.exe</executable>
<autoGetSource>True</autoGetSource>
<tagOnSuccess>True</tagOnSuccess>
</sourcecontrol>
<tasks>
<devenv>
<solutionfile>C:\Users\Builder\Desktop\builder-pc\MyProject\trunk\MyProject.sln</solutionfile>
<configuration>release</configuration>
<buildtype>Rebuild</buildtype>
<executable>C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\devenv.exe</executable>
<buildTimeoutSeconds>600</buildTimeoutSeconds>
</devenv>
</tasks>
</project>
</cruisecontrol>
我故意删除了SVN用户名和密码等内容。
使用VS命令提示符构建解决方案,但有警告。这是使用CC.Net将使用的相同的swtiches。
有人可以帮忙吗?它是否失败,因为没有运行单元测试,或者是因为警告?或者最好切换到MSBuild或NAnt而不是使用Visual Studio Task?
答案 0 :(得分:5)
如果构建日志中没有有用的信息,请尝试查看服务器日志以获取有关失败的信息。
答案 1 :(得分:3)
我认为您在xml日志文件中没有看到任何输出的原因是因为您的<publishers>
中没有相应的<project>
部分。
尝试:
<publishers>
<xmllogger />
</publishers>
答案 2 :(得分:1)
尝试使用MSBuild而不是devenv.exe运行构建。如果日志已合并到xml中但未在Web仪表板中正确显示,请确保已启用相应的xsl transforms。此外,正如Scrappydog所提到的,添加xmllogger发布者(虽然如果您根本没有定义任何发布者,默认情况下应该添加,您可以在“项目配置”页面上查看仪表板。
答案 3 :(得分:0)
您应该在同一路径中使用 devnev.com (请注意文件扩展名为 .com ,而不是.exe)(即C:\ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE),而不是devnev.exe。
<executable>
块是可选的,从the CruiseControl.NET documentation开始,它将使用最新版本的devnev.com,而不是devnev.exe。