我正在研究用于ASP.NET MVC 2应用程序的构建工具。我喜欢使用脚本语言而不是XML的想法,并将我的选择范围缩小到psake或rake。我对Ruby或PowerShell没有多少经验,但我也愿意学习。我不介意在我的构建服务器上安装Ruby,如果这是我最好的选择。
我的构建没有太复杂或不寻常。它需要从Mercurial仓库中获取源代码,构建Visual Studio 10解决方案,对配置文件进行一些转换,基于Database(Data Dude)项目构建/运行SQL脚本,复制VS的Web Publish,以及做一些其他的基本文件同步。
任何人都有使用rake和psake的经验可以比较它们吗?一个人在功能方面是否优于另一个,还是仅仅归结为脚本语言偏好?
提前致谢。
编辑: 我还没有CI解决方案,但我倾向于使用TeamCity。我以为我会提到它,以防一个构建工具比另一个构建工具更好。
答案 0 :(得分:24)
我不得不同意Derick的评估。这真的取决于你和你的团队是否对Ruby或Powershell感觉更舒服(以及你在学习中看到的更多价值)。两者都有自己的优点和缺点。要么比XML恕我直言更好。正如德里克所说,我也有自己的偏见,因为我是psake的原创作者。 :)
psake / PowerShell的一些优点:
rake / Ruby的一些优点:
这两种解决方案都可以帮助您构建解决方案。选择适合您团队的那个。希望有所帮助。
答案 1 :(得分:18)
如果您还没有这样做,请查看我的Albacore项目。它是构建.NET解决方案的一系列rake任务,并且可以使.NET解决方案更容易使用Rake。您可以从http://albacorebuild.net
获取所需的所有信息说过 - 我显然对我宁愿使用哪种工具有自己的偏见和偏好。所以带着一点盐,了解我的喜好......
..................
老实说,我认为哪个工具可以满足您的需求,更多的问题是哪个工具适合您的技能和舒适程度。 psake和rake + albacore都具有相同的功能。他们都很好。与其他工具相比,它们使您的工作变得非常轻松。但是根据他们的背景和他们来自哪里,他们有不同的方法和思维方式。
您是否更熟悉所有Microsoft平台的工具?或者您是否熟悉典型MS堆栈之外的工具,但仍然为在MS堆栈上构建软件的人员提供价值。
您是否愿意立即使用PowerShell支持您的构建工具?您是否愿意拥有类似c#的体验,能否将C#和其他.NET代码合并到您的构建过程中?您是否希望能够使用powershell的各种插件来帮助自动化窗口的各个方面,以进行部署?
或者您是否愿意拥有一个跨平台,非常开放的系统,通过ruby / rake为您提供更自然的语言体验?您是否熟悉* nix样式工具和命令,ssh以及部署的远程流程执行?
你说你不介意在构建服务器上安装ruby,它会回答部分问题并让你对选项保持开放态度。不过,还有很多问题需要回答。
如果您对MS堆栈更加满意,并希望获得基于MS的工具的开箱即用体验,那么请使用PowerShell。如果你想扩展你的视野并稍微离开MS堆栈,使用易于集成和使用的工具集来了解Ruby世界的所有内容,那么请使用ruby / rake /长鳍。
我希望这有帮助,即使我还没有直接回答你应该使用哪一个。希望我已经给你足够的时间考虑确定哪一个对你/你的团队更好。
答案 2 :(得分:0)
我目前正在开发基于PowerShell的构建工具,它将XML配置与使用PowerShell本身的系统一起使用和扩展。我想要一个简单的构建工具,可以扩展和定制,以适应大多数构建过程。这是项目示例页面: