如何在 IIS/Azure 中单独部署 webconfig 更改?

How to deploy webconfig changes alone in IIS/Azure?

目前,我已经使用 TFS 为 WebAPI 项目配置了我的 CICD。到目前为止,一切都很好。我还为每个环境创建了单独的 web.config (web.DEV.config,web.QA.config,web.PROD.config)

VS 在 TFS 中构建

问题

有时我们只需要更改 QA 环境的配置。在这种情况下,我们必须构建整个项目(单独更改 web.QA.Config 文件后),这是不需要的,我们只需要将新配置部署到 QA。目前,我们正在手动部署到 Azure App Service Editor/FTP 到源代码。

如果更改配置,是否只部署单独的配置而不是完整的 CICD?

您可以直接在 Azure 中更改您的 Web 应用程序设置,而无需部署。这将适用于您的情况,因为未来的部署不会覆盖您通过门户配置的任何内容,也就是说,这是一次性过程。

不能配置直接实现功能。但是您可以考虑使用一些解决方法。例如:

  1. 向您的构建定义添加一个变量,例如 "FullBuild",值为 "True"。
  2. 在构建定义的开头添加 Powershell 脚本任务。 powershell 脚本将执行以下操作:
    • 获取构建中的 changeset/commit 以检查更改了哪些文件。
    • 如果仅更改 web.QA.Config,则将 "FullBuild" 变量更新为 "false"。
  3. 将原始完整构建任务设置为 运行 和 "Custom conditions":and(succeeded(), eq(variables['FullBuild'], 'True'))
  4. 添加一些任务来转换 web.config 文件并使用 "Custom conditions" 将文件部署到 Azure:and(succeeded(), eq(variables['FullBuild'], 'False'))

要转换 web.config 文件,您可以创建您的客户 powershell 脚本来执行此操作或使用一些构建任务,例如:Apply transformations.