【问题标题】:Reasons to use Rake over NAnt or MSBuild在 NAnt 或 MSBuild 上使用 Rake 的原因
【发布时间】:2011-07-07 15:15:11
【问题描述】:
我见过几个 .NET 项目(例如 FluentNHibernate)使用 Ruby 的 rake 来运行他们的构建,而不是使用 .Net 工具,例如 NAnt 或 MSBuild。这样做有什么好处?我们正在启动一个新项目,并试图弄清楚是坚持我们现有的 NAnt 构建还是迁移到其他东西。任何意见,将不胜感激。
如果它有所作为,我们将使用 .Net 3.5。
【问题讨论】:
标签:
msbuild
build-process
rake
nant
【解决方案1】:
我无法与 Rake 交谈,因为我从未使用过它,但我使用过 SCons,我认为它与 Rake 相同,但在 Python 中。
基于脚本的 make 工具的主要优点是构建文件实际上是可执行脚本。换句话说,在 Rake 中构建文件是一个 Ruby 脚本,而在 SCons 中它是一个 Python 脚本。如果您可以使用构建系统支持的语言编写代码,则可以在构建时进行。所以那里的灵活性基本上是无限的。将其与 NAnt 进行比较,其中构建文件是 XML 中的一系列指令和声明。当然,您可以在 NAnt 构建文件中嵌入脚本等,但您仍然受困于用于表达任务的语言的流程、过程和语法。
还有学习曲线。 NAnt 相对简单,但如果您是从未见过构建文件的 C# 开发人员,一开始可能会有点不知所措。如果您一开始是 Ruby 开发人员并选择了 Rake,那么学习曲线就不会那么陡峭了。
我从来没有遇到过 NAnt 无法处理的事情,尽管我承认一些边缘的事情往往很困难。如果我使用 SCons,如果我可以选择编写 Python 脚本(可以访问优秀的 Python 标准库)开始,它们会容易得多。