为啥 CruiseControl.NET 无法构建,但使用命令行中的 msbuild.exe 有效?

Posted

技术标签:

【中文标题】为啥 CruiseControl.NET 无法构建,但使用命令行中的 msbuild.exe 有效?【英文标题】:Why does CruiseControl.NET fail to build but using msbuild.exe from the command line works?为什么 CruiseControl.NET 无法构建,但使用命令行中的 msbuild.exe 有效? 【发布时间】:2011-01-26 16:22:25 【问题描述】:

我有一个运行 CruiseControl.NET (v1.4.4.49) 的 CI 服务器,它无法构建 VS 解决方案文件。在 ccnet.config 中,我已经在使用 MSBUILD 标记来构建解决方案,但它失败了,因为大多数其他项目所依赖的项目要么没有按照正确的顺序构建,要么构建失败。

让我感到困惑的是,当我使用 C:\WINDOWS\Microsoft.NET\Framework\v3.5 中的 msbuild.exe 从命令行执行构建(使用 ccnet.config 中的相同参数)时,项目按预期构建,从 VS 2008 GUI 本身构建时,我得到了相同的结果。我已经搜索了一段时间,听说在使用 DEVENV 构建时会发生这种情况,但大多数解决方案都告诉我使用我已经在使用的 MSBUILD 标记。以前有没有人遇到过这个问题,如果是这样,任何关于如何解决这个问题的指导将不胜感激。

【问题讨论】:

CCNET 的输出是什么? 这是某种 XML 记录器错误(我们的其他开发人员之一刚刚删除了所有 CC.NET 日志文件,所以我不记得确切的错误),但我解决了这个问题通过注释掉有问题的项目。找到解决方案后,我会将我的发现发布在此处供其他人查看。 【参考方案1】:

我没有代表发表评论,所以必须回答。如果您在使用标准 MSBuild 记录器时遇到记录器问题,请尝试 Christian Rodemeyer 的 MsBuildToCCNet 记录器(此处提到:http://ilmatte.wordpress.com/2008/06/15/cruisecontrolnet-tutorial-part-2/)

CC.Net 文档中提到的标准 MSBuild 记录器有很多问题,但 Christian 的效果很好。

Thoughtworks 网站处于不确定状态,您可能很难找到它。如果是这样,请告诉我,我会看看我是否可以在办公室追踪我的下载。

【讨论】:

在我受雇之前,我们实际上已经实施了。 从头开始,它是在我们的旧 CI 服务器上实现的,但我从未在我们的新服务器上设置它。如果您有下载并可以给我一个链接(您给我的链接中的下载已损坏),我将不胜感激。 抱歉链接,我也坏了。我希望这是暂时的。 glacierdigital.com/rodemeyer.zip 包含我正在使用的 3 个文件。我找不到原始的 zip。 谢谢! (差不多3个月后,哈哈)

以上是关于为啥 CruiseControl.NET 无法构建,但使用命令行中的 msbuild.exe 有效?的主要内容,如果未能解决你的问题,请参考以下文章

CruiseControl.NET(CCNET)“收到进程退出事件”但构建等待?

CruiseControl.Net 在使用 msbuild 任务的项目后重新启动

在 CruiseControl.net 中构建 VB6 应用程序的 DCOM 问题

让 MSBuild 和 CruiseControl .NET 构建和部署 VS2010 数据库项目

Cruisecontrol.net exec 中的 Fitnesse:测试失败时不要使构建失败

Cruise Control .Net 服务器无法检测在 Starteam 上所做的修改