2010-04-22 96 views
5

有没有人在Cruise Control中获得一个MSBuild任务来加载记录器?Cruise Control .NET 4.0 MSBUILD Logger

我试过变体,但它总是无法加载记录器。

C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \ MSBuild.exe C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 C:\建立\ MVC2Test \干线\ MVC2Test \ MVC2Test.sln /noconsolelogger/p:配置= CruiseControl的/ v:DIAG 生成 ThoughtWorks.CruiseControl.MsBuild.XmlLogger,C:\程序文件(x86)\ CruiseControl.NET \服务器\ ThoughtWorks.CruiseControl.MsBuild .dll

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

感谢

回答

7

对于我来说,让.NET 4.0和巡航控制.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年来,微软如何才能对测试知之甚少呢?

祝你好运。

+2

+1关于MSTest的观点。我们不得不在我们的构建服务器上安装VS,这简直太愚蠢了。我想这是因为他们希望我们使用TFS Build服务器,但现在它非常不成熟,因此CCNet是更好的选择。 – John 2010-04-29 14:56:38