如何使用像NAnt这样的工具进行大规模构建,但仍允许开发人员使用VS IDE?

时间:2009-08-06 20:31:30

标签: .net msbuild nant version-control

我们在VS 2008中拥有一个庞大的代码库。我们的开发人员需要依赖VS IDE进行日常开发。但是我们也有复杂的依赖关系和部署步骤,需要自动夜间构建。

我熟悉NAnt。它非常适合我们的IDE外部构建和部署步骤。不幸的是,我还没有看到将其构建步骤集成到IDE中的好方法。例如,开发人员希望能够构建CTRL-SHIFT-B。我已经看到了将NAnt添加为外部构建工具的步骤,但这不允许开发人员双击错误以跳转到源。

这些天MSBuild是否足够好?还有别的事吗?我无法相信我们是第一个处理复杂构建和挑剔开发人员的人。

编辑:我从this question and answers看到,如果我想要完整的IDE集成,MSBuild可能会成为可行的方法。反对的任何论据?

3 个答案:

答案 0 :(得分:2)

好吧,我有点偏颇,但MSBuild绝对是最好的选择。目前MSBuild用于构建Visual Studio本身,因此它具有能力。还将有一个新版本的MSBuild与Visual Studio 2010(实际上是.NET 4.0 )将有一系列增强功能,包括构建C ++项目。

Sayed Ibrahim Hashimi

我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

答案 1 :(得分:2)

MSBuild将是最佳选择,因此您可以在VS解决方案中管理依赖关系配置,而不是nant脚本。 MSBuild还将运行VS项目中设置的pre和post构建命令,但是,某些VS特定属性不可用。您可以让Nant在解决方案文件上运行MSBuild。

我在一个有些复杂构建的项目上工作。我们使用Cruise Control进行连续集成,检查SVN的修改,然后调用Nant脚本,然后调用MSBuild目标。所有部署都是从那里完成的。开发人员可以在不需要知道如何部署的情况下进行构建和调试,这使得新开发人员变得轻松,并且他们只关注开发并让Release Manager管理构建和部署。

答案 2 :(得分:0)

你试过 NUBuild 吗?它非常适合开发人员进行“本地构建”。此外,它将通过让开发人员尽早捕获它们而不是在检查源控件之后来减少构建失败。一旦设置完成,就像在批处理文件中执行命令来构建项目一样简单。尝试一下 -

http://nubuild.codeplex.com