我知道还有其他NAnt and MSBuildStack Overflow 上的相关问题,但我找不到两者之间的直接比较,所以这里是问题。
什么时候应该选择 NAnt 而不是 MSBuild?哪一个更适合做什么? NAnt 更适合家庭/开源项目,MSBuild 更适合工作项目吗?两者中的任何一个的体验如何?
我本周做了类似的调查。这是我能够确定的:
NAnt:
- 跨平台(支持Linux/Mono)。例如,将网站安装到多个目标(即 Linux Apache 和 Windows IIS)可能会很方便。
- 语法与 Ant 95% 相似(当前 Ant 用户或 Java 构建者很容易上手)
- 与 NUnit 集成以在构建过程中运行单元测试,并与 NDoc 集成以生成文档。
MSBuild:
- 内置于 .NET。
- 与 Visual Studio 集成
- 在 Visual Studio 中轻松开始使用 MSBuild - 一切都在幕后进行。如果您想更深入,您可以手动编辑文件。
主观差异: (YMMV)
- NAnt 文档更简单一些。例如,MSBuild 任务参考列出“Csc 任务 - 描述 Csc 任务及其参数。”(感谢“帮助”?),与NAnt 任务参考“csc - 编译 C# 程序。”UPDATE:我注意到MSBuild 文档已经得到改进,现在好多了(可能与 NAnt 相当)。
- 弄清楚如何直接从 Visual Studio 中编辑构建脚本源(*.*proj 文件)并不容易。使用 NAnt,我只需让 Visual Studio 将 .build 脚本视为 XML 文件。
- 显然,在 Visual Studio 中,Web 应用程序项目默认情况下不会获取 *.*proj 文件,因此我很难弄清楚如何让 MSBuild 在我的项目上运行以创建部署脚本。
- NAnt 不是内置于 Visual Studio 中的,必须使用外接程序或作为“外部工具”进行添加。设置起来有点麻烦。
- (编辑:)我的一位同事提出了这个问题——如果你想使用巡航控制为了持续集成,CruiseControl 与 NAnt 完美集成,开箱即用。UPDATE:CruiseControl 还具有MSBuild任务.
- 请参阅下面的评论,了解有关主观差异的完整且最新的讨论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)