【问题标题】:Simple automation of building ASP.NET MVC 2 application构建 ASP.NET MVC 2 应用程序的简单自动化
【发布时间】:2010-12-06 22:26:14
【问题描述】:

美好的一天!

我正在寻找从命令行执行此类任务的解决方案:

  • 编译 ASP.NET MVC 2.0 应用程序(1 个 asp.net mvc 项目和 2 个类项目在 1 个解决方案中)
  • 执行 Web.config 转换
  • 从编译结果中删除一些文件和文件夹
  • 运行 bat 文件,使用 svnversion 添加 svn 修订号
  • 运行外部存档程序以压缩版本
  • 仍然可以使用VS进行调试

我正在使用 Visual Web Developer 2010,我的项目已经有 Web.Release.configWeb.Debug.config

这可以使用 MSBuild 完成吗?

提前致谢!

【问题讨论】:

    标签: asp.net-mvc msbuild


    【解决方案1】:

    是的,您应该能够使用 MSBuild 完成大部分(如果不是全部)任务。查看 MSBuild 社区任务,它们添加了相当多的功能。

    http://msbuildtasks.tigris.org/

    HTH

    【讨论】:

    • 对我来说似乎是一个解决方案,但据我所知,我无法在解决方案级别编写脚本——只能在项目级别编写,对吧?
    • 不确定解决方案级别与项目级别的含义?如果您的意思是,您不能将 msbuild 用于整个解决方案,那是不正确的。是的,您可以使用整个解决方案。
    【解决方案2】:

    我不相信 MSBuild 本身会完成您列表中的许多事情。您可以创建一堆脚本来执行此操作。但是,我建议看一下 Hudson 持续集成服务器。它已经可以完成您列表中的许多事情。它是一个基于插件的系统,所以如果一个插件不存在,你可以自己滚动。此外,还有一个相当活跃的社区,因此您会发现许多博客文章。这是他们网站的链接:

    http://hudson-ci.org/

    我还写了一篇关于开始使用 hudson 和 .net 的博文。您可能会发现这也很有用:

    http://blog.bobcravens.com/2010/03/getting-started-with-ci-using-hudson-for-your-net-projects/

    希望这会有所帮助。

    鲍勃

    【讨论】:

    • 感谢您的回复,我真的很想使用一些 CI 解决方案(感谢您的文章,太棒了!),但在这种情况下我觉得有点矫枉过正......
    【解决方案3】:

    我通常使用 ruby​​ + rake 自己滚动。以下内容处理了您列出的大部分内容。

    require 'rake/clean'
    
    SELF_PATH = File.dirname(__FILE__)
    PATH_TO_ROOT = SELF_PATH
    PATH_TO_WEB = "C:\\Dev\\"
    PATH_TO_MSBUILD = "C:\\Windows\\Microsoft.NET\\Framework\\v3.5\\msbuild.exe"
    
    CLEAN.exclude("**/core")
    CLEAN.include("*.cache", "*.xml", "*.suo", "**/obj", "**/bin", "../Deploy")
    
    task :build do 
      sh "#{PATH_TO_MSBUILD} /v:q #{PATH_TO_ROOT}/HUD.sln"
    end
    
    namespace "deploy" do
      desc "Preps the project for deployment"
      task :package, :project_name do |t, args|
        begin
          Rake::Task["clean"].invoke
          Rake::Task["build"].invoke
          Dir.mkdir("../Deploy")
          sh "xcopy .\\#{args.project_name} ..\\Deploy\\#{args.project_name}\\ /S /C /F /Y /exclude:e.txt"
          begin
            sh "xcopy .\\#{args.project_name}\\Web.config.prod ..\\Deploy\\#{args.project_name}\\Web.config /S /C /F /Y" 
          rescue
          end
        rescue Exception=>e
          puts e
        end
      end
    end
    

    【讨论】:

    • 感谢您的选择,我使用.bat 文件创建了类似的东西:(
    猜你喜欢
    • 2010-09-26
    • 1970-01-01
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-10-06
    相关资源
    最近更新 更多