【问题标题】:Suggestions on how to automate deployment for an ASP.NET solution?关于如何自动部署 ASP.NET 解决方案的建议?
【发布时间】:2014-01-15 16:04:16
【问题描述】:

我们目前的部署步骤可以简述如下:

  1. 在 Visual Studio 2012 中加载项目,并将模式从 Debug 更改为 Release
  2. 右键单击 Web 应用程序项目,然后选择 发布
  3. 选择“文件系统”发布方式并创建目标位置
  4. 将文件发布到指定的文件位置
  5. 压缩所有发布的文件并通过 FTP 客户端将包发送到远程服务器,例如FileZilla
  6. RDC 服务器并手动解压缩包
  7. 将 App_offline.htm 添加到目标 Web 应用程序的根文件夹中
  8. 只复制选定的文件夹/文件(不是全部)从解压缩包到 目标网页应用目录(先备份目标文件)
  9. 从根文件夹中删除了 app_offline.htm
  10. 在 IIS 中重新启动/刷新网站

手动操作实在是太痛苦了。这就是我的团队要求我坚持的部署过程,哈哈。我绝不会永远手动进行。一定有更好的方法。

到目前为止,我刚刚设置了 TeamCity 用于自动化构建。因此,每当开发人员在TFS 中签入他/她的代码时,都会自动触发构建,并向团队发送有关构建状态的通知电子邮件。

但自动化部署仍悬而未决。那么关于如何自动化这个过程并使生活更轻松的任何建议/想法?部署 ASP.NET Web 应用程序的正确方法是什么?

【问题讨论】:

标签: .net deployment tfs automation


【解决方案1】:

在谈到自动化 ASP.NET 部署过程时,需要考虑多种途径。

首先,正如有人在对您的问题的评论中建议的那样,您可以使用 Team Foundation Server 构建您的项目并进行部署。

其次,有很多工具可以做到这一点。以下是我们的团队目前正在考虑的几个:

当然,还有很多其他的。

但是,如果您不想投入任何资金(尽管开发时间也可以是金钱),您可以编写一套脚本(Python 擅长此操作)来使用一些控制台命令构建您的项目并复制文件到您的服务器。

当然,最后一个是解决方案,但它是可行的,并且在某些条件下可能有用(例如:长期学校项目)。

正如我所见,您对自动化过程所需的步骤有相当清晰的认识,如果时间允许,也许您真的应该尝试自己实施它。

不同步骤的一些提示:

另外,请注意,在谈到自动化时,它有很多可实现的水平,几乎就像一个模拟量表。

【讨论】:

  • 既然您提到了 BuildMaster,您可以关注 this tutorial,它为 ASP.NET 网站设置部署。对于 Web 应用程序,只需将“构建 ASP.NET Web 项目”步骤添加到计划中,而不是直接复制文件。
  • 非常好的建议。我还将研究用于自动化的脚本。
  • @JohnRasch +1 来自 BuildMaster 开发者的评论 :)
  • @JohnRasch 我希望这不会带来不便,我想听听选择 BuildMaster 而不是其他产品(尤其是 OctopusDeploy)的一些原因,因为我的团队对此进行了实际辩论。
  • 虽然这个问题的答案可能会写满整篇文章,但这实际上取决于您要自动化的内容。很难找到任何东西来比较 BuildMaster,因为它做了很多事情。但是,如果我必须选择 4 个差异来适应这里,我会说:1)您可以部署的不仅仅是 .NET Web 应用程序和服务,2)您可以添加批准和其他流程自动化来阻止促销,无论出于何种原因, 3) 它具有高度可扩展性,我们所有的扩展都是on GitHub,4) 电子邮件通知 - 完成构建/部署,需要/给予批准,服务器关闭
【解决方案2】:

以下是使用 Beanstalk 部署 ASP.NET 应用程序的指南,您可能会发现它很有用:

Deploying .NET & ASP.NET Applications

【讨论】:

  • 仅链接的答案不被视为好的答案。如果链接断开怎么办。请在此处总结链接的内容。此外,如果您的回答不被视为垃圾邮件,请明确披露您与 Beanstalk 的联系。
猜你喜欢
  • 2015-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
  • 2010-09-05
  • 1970-01-01
  • 2020-01-20
相关资源
最近更新 更多