我目前使用nant,ccnet(巡航控制),svn,mbunit.我使用msbuild来做我的sln构建只是因为它更容易出壳.
将我的整个构建脚本切换到MSBuild有什么好处吗?我需要能够运行测试,watir样式测试,xcopy部署.这更容易吗?
更新:任何引人注目的功能会导致我从nant转移到msbuild?
我喜欢MSBuild.一个原因是.csproj文件是msbuild文件,VS中的构建就像在命令行中构建一样.另一个原因是TeamCity的良好支持,这是我一直在使用的CI服务器.如果你开始使用的MSBuild,并且要在构建过程中做更多的事情定制,得到的MSBuild社区任务.他们为您提供了许多额外的好工作.我已经好几年没用过NAnt了,我并没有后悔.
此外,正如Ruben所提到的,CodePlex上有SDC Tasks任务.
为了更有趣,CodePlex上有MSBuild扩展包,其中包含一个推特任务.
我的建议正好相反 - 避免像瘟疫这样的MSBuild.NANT更容易设置您的构建以进行自动测试,部署到多个生产环境,与cruisecontrol集成以用于入口环境,与源代码控制集成.我们通过TFS/MSBuild(使用TFSDeployer,自定义PowerShell脚本等)经历了如此多的痛苦,以使它能够完成我们能够用NANT开箱即用的功能.不要浪费你的时间.
使用MSBuild的最令人信服的理由(至少在.NET 3.5及更高版本中) - 构建引擎可以同时构建.
这意味着在您拥有多个内核/处理器的构建中可以大幅提升速度.
在3.5之前,MSBuild没有进行并行构建.
我觉得MSBuild和Nant相当可比.如果您使用其中之一,我通常不会在它们之间切换,除非您选择的产品中缺少令人信服的功能.
我个人使用MSBuild进行任何新项目,但您的里程可能会有所不同.
希望有所帮助!
编辑: @ChanChan - @Jon提到Nant不构建.NET 3.5应用程序.这可能足以成为改变或至少并行使用它们的理由.随着我越来越倾向于MSBuild,我可能不是最明智的人,要么强调任何其他任何技术的showstoppers.
编辑:现在看来Nant构建了.NET 3.5应用程序.