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

Ser*_*ich 9 asp.net deployment installation webdeploy

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

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

目前我们使用自制的安装程序,但考虑是否可以用更方便和适合CI/CD开发周期的东西替换它.

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

Ale*_*xei 4

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

1.(部分)开源解决方案

配置 CI 周期的一种方法是使用 Jenkins 和 MS 部署功能。本文展示了如何快速设置作业以将 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"
Run Code Online (Sandbox Code Playgroud)

它还告诉执行用户应该是目标服务器上的管理员,但这可以通过正确配置 Web 部署处理程序来避免,如本文所述。

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

2.Visual Studio 2017 DevOps解决方案

Microsoft 最近发布了 VS 2017,其中包含对 DevOps 的大力支持,可以处理与 CI/CD 相关的大部分问题。我找不到参考,但我记得此功能仅适用于企业版。此外,好消息是它并未受到 Microsoft 技术的限制。

可以在此处找到与该主题相关的演示文稿

我认为 WebDeploy 可以使用,不会出现重大问题。根据我的经验:

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