我见过几个.NET项目(例如FluentNHibernate)使用Ruby的rake来运行他们的构建,而不是使用.Net工具,如NAnt或MSBuild。这样做有什么好处?我们正在开始一个新项目,并试图弄清楚是否坚持我们现有的NAnt构建或迁移到其他东西。任何意见,将不胜感激。
如果它有所作为,我们正在使用.Net 3.5。
答案 0 :(得分:5)
我不能和Rake说话,因为我从未使用它,但是我使用了SCons,我认为这与Rake相同,但在Python中。
基于脚本的make工具的主要优点是构建文件实际上是可执行脚本。换句话说,在Rake中,构建文件是一个Ruby脚本,而在SCons中它是一个Python脚本。如果您可以使用构建系统支持的语言编写代码,则可以在构建时执行此操作。所以那里的灵活性基本上是无限的。将其与NAnt进行比较,其中构建文件是XML中的一系列指令和声明。当然,你可以在NAnt构建文件中嵌入脚本和诸如此类的东西,但是你仍然坚持用于表达任务的语言的流程,过程和语法。
然后还有学习曲线。 NAnt相对简单,但是如果你是一个从未见过构建文件的C#开发人员,那么起初它可能有点压倒性。如果您是Ruby开发人员并且选择Rake,那么学习曲线就不那么陡峭了。
我从来没有遇到过NAnt无法处理的事情,尽管我会承认一些边缘事情往往很难。如果我使用SCons,如果我可以选择编写Python脚本(可以访问优秀的Python标准库),那么它们就会容易得多。