【问题标题】:How to deploy webconfig changes alone in IIS/Azure?如何在 IIS/Azure 中单独部署 webconfig 更改?
【发布时间】:2019-02-13 11:55:35
【问题描述】:

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

VS 在 TFS 中构建

问题

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

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

【问题讨论】:

  • 今天您的 CD 的最后一步是什么?您是如何发布到 Azure 的?我所做的是构建一个主存储库,其中源代码存储库和部署存储库作为子模块blog.lextudio.com/… 然后在我的管道中,使用来自子模块的触发器来启动所有构建和部署到 Azure。由于部署 repo 是独立的,我总是可以在那里手动编辑web.config

标签: c# asp.net-mvc azure tfs web-config


【解决方案1】:

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

【讨论】:

  • 这是可能的,但这又是手动更改。我真的希望配置更改以签入我的回购
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多