分步式ASP.NET自动化构建/部署

时间:2020-03-05 18:51:52  来源:igfitidea点击:

似乎有很多不同的方法可以自动执行构建/部署,因此很难通过人们在网络教程中支持的所有不同方案来进行分析。因此,我想向stackoverflow人群介绍这个问题...采用以下配置来建立自动化构建和部署系统的最佳方法是什么:

  • Visual Studio 2008年
  • 网络应用项目
  • CruiseControl.NET

我尝试做的第一件事是让CCnet自动压缩输出并将其复制到服务器,但是随后需要手动工作才能在目标位置解压缩。但是,如果我们尝试分别复制所有文件,那么如果它是大型应用程序,则可能会花费很长时间(构建服务器位于我们办公室的数据中心之外……我知道)。

同样特别令人感兴趣的是,当我们拥有dev,qa,uat和prod之后,我们将如何支持多种环境。

MSDeploy看起来确实很有趣,但是除非我对文献有错误的解释,否则在从生成服务器的输出进行部署的情况下无济于事。如果有的话,在整个构建场中部署一个构建似乎很有用……但是,即使是从一个环境部署到另一个环境,也必须手动更改配置设置和Web服务URL等。

解决方案

回答

我们可能对MSDeploy感兴趣。这是Scott Hanselman的相关文章。目前(2008年9月)仅作为技术预览提供,但值得根据要求进行评估。

回答

我有一个有关从自动化构建中获取可部署文件集的相关问题。我发现Web部署项目(链接以及所有在旧问题中的内容)确实满足了我的要求,它们是VS和MSBuild加载项。

回答

我们有能力远程运行命令吗? Systinternals的PsExec实用程序将允许在远程计算机上运行命令行解压缩程序。如果我们有一个脚本将构建文件作为.zip文件复制到远程站点,则只需要多一行用于PsExec调用即可将文件解压缩。

回答

最近,我花了几天时间在公司进行自动化部署。

我们结合使用CruiseControl,NAnt,MSBuild来生成该应用程序的发行版。然后,一个单独的脚本使用MSDeploy和XCopy备份活动站点并转移新文件。

在对这个问题的答案中简要描述了我们的解决方案。Web应用程序的自动化部署?

回答

还有另一个称为NUBuild的新构建工具(非常智能的包装器)。它轻巧,开放源代码,并且非常容易设置,并且提供几乎无接触的维护。我真的很喜欢这个新工具,我们已经将其作为我们项目的持续构建和集成过程的标准工具(我们有75个开发人员的大约400个项目)。试试看。

http://nubuild.codeplex.com/

  • 易于使用的命令行界面
  • 能够定位所有.Net框架版本(即1.1、2.0、3.0和3.5)
  • 支持基于XML的配置
  • 支持项目和文件引用
  • 自动为给定项目生成完整的有序构建列表,无需维护。
  • 能够检测和显示循环依赖
  • 执行并行构建-自动确定生成的构建列表中的哪些项目可以独立构建。
  • 处理代理程序集的能力
  • 提供有关构建过程的视觉线索,例如显示完成百分比,当前状态等。
  • 生成XML和文本格式的详细执行日志
  • 与Cruise-Control.Net持续集成系统轻松集成
  • 定位到2.0及更高版本时,可以使用XMLLogger之类的自定义记录器
  • 解析错误日志的能力
  • 能够将构建的程序集部署到用户指定的位置
  • 能够与源代码控制系统同步源代码
  • 版本管理能力