ASP.NET Web应用程序的安装程序

时间:2017-03-20 08:05:50

标签: asp.net deployment installation webdeploy

我们有一些ASP.NET Web应用程序,有两种使用方式:

  • 企业解决方案(类似msi的安装程序)
  • 云解决方案(使用相同的安装程序)

目前我们使用自行开发的安装程序,但请考虑是否可以使用更方便,更适合CI / CD开发周期的内容替换它。

可以使用哪些技术/产品?目前我考虑使用webdeploy,但不确定它如何应用于企业设置......

2 个答案:

答案 0 :(得分:4)

这是一个相当广泛的问题,但我认为值得回答。

<强> 1。 (部分)开源解决方案

配置CI循环的一种方法是使用Jenkins和MS部署功能。 This article展示了如何快速设置作业以将Jenkins与msdeploy工具集成。

基本上它使用Powershell配置作业来执行部署:

msdeploy.exe -allowUntrusted=true -verb:sync -source:contentpath='D:\WS\ExampleProject' -dest:contentpath=F:\webfolder,computerName=exampleproject.example.com,Username='yourdomain\username',Password='password' -skip:objectName=dirPath,absolutePath="config" -skip:objectName=filePath,absolutePath="web.config"

它还告诉执行用户应该是目标服务器的管理员,但是可以通过正确配置Web部署处理程序来规避这一点,如this article所示。

在Jenkins集成(我建议)之前可以完成的一个中间步骤是配置Web部署。这允许使用Visual Studio和允许部署的任何已配置用户快速检查是否可以在目标服务器IIS上执行部署。它还允许快速查看当前代码库(网页,JS文件,二进制文件)和目标服务器部署包之间的差异。

<强> 2。 Visual Studio 2017 DevOps解决方案

Microsoft最近发布了VS 2017,其中包含对DevOps的强大支持,DevOps处理大多数与CI / CD相关的问题。我找不到参考,但我记得此功能仅适用于企业版。此外,好消息是它没有收紧微软的技术。

可以找到与该主题相关的演示here

我认为WebDeploy可以在没有重大问题的情况下使用。根据我的经验:

  • 备份限制:只能在网站级别完成,而不能在Web应用程序级别完成
  • 部署时间:非常小 - 实际文件复制+网站备份(如果已配置)+应用程序池回收。

答案 1 :(得分:0)

最近,我看到一家供应商为需要内部部署的客户提供了他们用于云部署的相同Docker镜像。看起来像一个好的,干净的解决方案。

另一种选择是nuget包 - 托管您自己的存储库。然后使用Octopus Deploy等工具进行部署。我对它并不十分熟悉,但在设置初期驼峰后,这两种解决方案看起来都很容易。