草庐IT

.net - .NET 构建的 psake 与 rake

coder 2023-04-24 原文

我正在研究用于 ASP.NET MVC 2 应用程序的构建工具。我喜欢使用脚本语言而不是 XML 的想法,并将我的选择范围缩小到 psake 或 rake。我对 Ruby 或 PowerShell 没有太多经验,但我都愿意学习。如果这是我的最佳选择,我不介意在我的构建服务器上安装 Ruby。

我的构建没有太复杂或不寻常的地方。它需要从 Mercurial 存储库中提取我的源代码,构建 Visual Studio 10 解决方案,对配置文件进行一些转换,构建/运行基于数据库(Data Dude)项目的 SQL 脚本,复制 VS 的 Web Publish,并且可能做一些其他的基本文件同步。

有没有人在 rake 和 psake 方面有经验可以比较它们?一个在功能方面是否比另一个有优势,还是仅仅归结为脚本语言偏好?

提前致谢。

编辑: 我还没有 CI 解决方案,但我倾向于使用 TeamCity。我想我会提到它,以防一个构建工具比另一个更好。

最佳答案

我不得不同意 Derick 的评估。这实际上取决于您和您的团队是否对 Ruby 或 Powershell 感觉更舒服(以及您认为学习更有值(value))。两者都有自己的长处和短处。两者都比 XML 恕我直言。正如德里克所说,我也有自己的偏见,因为我是 psake 的原作者。 :)

psake/PowerShell 的几个优点:

  1. PowerShell 已安装在 Windows 7 和 Server 2008 上。可轻松安装在 XP 和 2003 上。
  2. 在版本控制中轻松包含在您的解决方案中。 (事件部件更少。)
  3. 您可以使用 PowerShell 命令行并将其逐字粘贴到 psake 任务中。
  4. Microsoft 和第 3 方创建了大量 cmdlet。
  5. 您的 IT 人员/gal 可能知道一些 PowerShell,这可能会让他们在自动化部署时感觉更舒服。 (部署脚本不是这样的黑匣子。)

rake/Ruby 的一些优点:

  1. Rake 拥有一个更大的社区,因为它在 Ruby 社区中被广泛使用。
  2. Ruby 是一种比 PowerShell 更具表现力的语言,尽管您可能希望在构建脚本中保持简单。
  3. Albacore 使使用 rake 构建 .NET 项目变得更加容易。
  4. Rake 有一个很好的命名空间机制来将任务组合在一起。

这两种解决方案都可以构建您的解决方案。选择适合您团队的。希望对您有所帮助。

关于.net - .NET 构建的 psake 与 rake,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867041/

有关.net - .NET 构建的 psake 与 rake的更多相关文章

  1. ruby - 其他文件中的 Rake 任务 - 2

    我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时

  2. ruby-on-rails - Ruby net/ldap 模块中的内存泄漏 - 2

    作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代

  3. ruby - 如何模拟 Net::HTTP::Post? - 2

    是的,我知道最好使用webmock,但我想知道如何在RSpec中模拟此方法:defmethod_to_testurl=URI.parseurireq=Net::HTTP::Post.newurl.pathres=Net::HTTP.start(url.host,url.port)do|http|http.requestreq,foo:1endresend这是RSpec:let(:uri){'http://example.com'}specify'HTTPcall'dohttp=mock:httpNet::HTTP.stub!(:start).and_yieldhttphttp.shou

  4. ruby - 如何使用 RSpec::Core::RakeTask 创建 RSpec Rake 任务? - 2

    如何使用RSpec::Core::RakeTask初始化RSpecRake任务?require'rspec/core/rake_task'RSpec::Core::RakeTask.newdo|t|#whatdoIputinhere?endInitialize函数记录在http://rubydoc.info/github/rspec/rspec-core/RSpec/Core/RakeTask#initialize-instance_method没有很好的记录;它只是说:-(RakeTask)initialize(*args,&task_block)AnewinstanceofRake

  5. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  6. ruby - 在 Ruby 中构建长字符串的简洁方法 - 2

    在编写Ruby(客户端脚本)时,我看到了三种构建更长字符串的方法,包括行尾,所有这些对我来说“闻起来”有点难看。有没有更干净、更好的方法?变量递增。ifrender_quote?quote="NowthatthereistheTec-9,acrappyspraygunfromSouthMiami."quote+="ThisgunisadvertisedasthemostpopularguninAmericancrime.Doyoubelievethatshit?"quote+="Itactuallysaysthatinthelittlebookthatcomeswithit:themo

  7. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  8. ruby-on-rails - Rake 任务仅调用一次时执行两次 - 2

    我写了一个非常简单的rake任务来尝试找到这个问题的根源。namespace:foodotaskbar::environmentdoputs'RUNNING'endend当在控制台中执行rakefoo:bar时,输出为:RUNNINGRUNNING当我执行任何rake任务时会发生这种情况。有没有人遇到过这样的事情?编辑上面的rake任务就是写在那个.rake文件中的所有内容。这是当前正在使用的Rakefile。requireFile.expand_path('../config/application',__FILE__)OurApp::Application.load_tasks这里

  9. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  10. .net - .NET 将如何影响 Python 和 Ruby 应用程序? - 2

    我很好奇.NET将如何影响Python和Ruby应用程序。用IronPython/IronRuby编写的应用程序是否会非常特定于.NET环境,以至于它们实际上将变得特定于平台?如果他们不使用任何.NET功能,那么IronPython/IronRuby相对于非.NET同类产品的优势是什么? 最佳答案 我不能说任何关于IronRuby的东西,但是大多数Python实现(如IronPython、Jython和PyPy)都试图尽可能忠实于CPython实现。不过,IronPython正在迅速成为这方面的佼佼者之一,并且在PlanetPyth

随机推荐