巡航控制 .NET 4.0 MSBUILD 记录器

Posted

技术标签:

【中文标题】巡航控制 .NET 4.0 MSBUILD 记录器【英文标题】:Cruise Control .NET 4.0 MSBUILD Logger 【发布时间】:2010-04-22 13:59:20 【问题描述】:

有人在 Cruise Control 中获得了 MSBuild 任务来加载记录器吗?

我尝试了各种变体,但总是无法加载记录器。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe C:\Windows\Microsoft.NET\Framework\v4.0.30319 C:\builds\MVC2Test\trunk\MVC2Test\MVC2Test.sln /noconsolelogger /p:Configuration=CruiseControl /v:diag 建造 15 ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\Program Files (x86)\CruiseControl.NET\server\ThoughtWorks.CruiseControl.MsBuild.dll

如果可能,请发布一个专门工作的 .NET 4.0 示例。

谢谢

【问题讨论】:

【参考方案1】:

对我来说,获得 .NET 4.0 和 Cruise Control .NET 的原因在于:

1) 避免像瘟疫一样使用 64 位 MSBuild...首先有一个有效的 32 位构建。

2) 只需指定记录器的完全限定路径,而不是典型类, 汇编格式。

3) 从 VS 2010 光盘部署目标包。 \WCU\MTPack\NetFx_DTP.msi EXTUI=1 /log install.log

4) 始终首先从命令行证明 MSBuild 有效。

5) 在您的解决方案文件中创建配置并仅包含您要构建的项目

<msbuild>
    <!-- WARNING:  You must copy the files from C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications to the same path on your build server -->
    <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
    <workingDirectory>C:\builds\SOLUTIONFOLDER\trunk\</workingDirectory>
    <projectFile>C:\builds\SOLUTIONFOLDER\trunk\SOLUTIONNAME.sln</projectFile>
    <buildArgs>/noconsolelogger /p:Configuration=CruiseControl /v:diag</buildArgs>
    <targets>Build</targets>
    <timeout>15</timeout>
    <logger>C:\CruiseControl\server\ThoughtWorks.CruiseControl.MSBuild.dll</logger>
</msbuild>

现在,如果微软只允许我们在我们的构建服务器上轻松安装 MSTest……人们已经乞求了 5 年,微软怎么能对测试了解这么少?

祝大家好运。

【讨论】:

+1 表示关于 MSTest 的观点。我们必须在我们的构建服务器上安装 VS,这简直是愚蠢的。我想这是因为他们希望我们使用 TFS Build 服务器,但它现在还很不成熟,CCNet 是更好的选择。

以上是关于巡航控制 .NET 4.0 MSBUILD 记录器的主要内容,如果未能解决你的问题,请参考以下文章

我应该从 nant 切换到 msbuild 吗?

Jenkins结合.net平台工具之Msbuild

CI 服务器上的 .NET 4.0 构建问题

CI 服务器上的 .NET 4.0 构建问题

怎样使用 MSBuild 自动编译和发布 NET 网站

怎样使用 MSBuild 自动编译和发布 NET 网站