如何在 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 应用程序设置,而无需部署。这将适用于您的情况,因为未来的部署不会覆盖您通过门户配置的任何内容,也就是说,这是一次性过程。
不能配置直接实现功能。但是您可以考虑使用一些解决方法。例如:
- 向您的构建定义添加一个变量,例如 "FullBuild",值为 "True"。
- 在构建定义的开头添加 Powershell 脚本任务。 powershell 脚本将执行以下操作:
- 获取构建中的 changeset/commit 以检查更改了哪些文件。
- 如果仅更改 web.QA.Config,则将 "FullBuild" 变量更新为 "false"。
- 将原始完整构建任务设置为 运行 和 "Custom conditions":
and(succeeded(), eq(variables['FullBuild'], 'True'))
- 添加一些任务来转换 web.config 文件并使用 "Custom conditions" 将文件部署到 Azure:
and(succeeded(), eq(variables['FullBuild'], 'False'))
要转换 web.config 文件,您可以创建您的客户 powershell 脚本来执行此操作或使用一些构建任务,例如:Apply transformations.
目前,我已经使用 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 应用程序设置,而无需部署。这将适用于您的情况,因为未来的部署不会覆盖您通过门户配置的任何内容,也就是说,这是一次性过程。
不能配置直接实现功能。但是您可以考虑使用一些解决方法。例如:
- 向您的构建定义添加一个变量,例如 "FullBuild",值为 "True"。
- 在构建定义的开头添加 Powershell 脚本任务。 powershell 脚本将执行以下操作:
- 获取构建中的 changeset/commit 以检查更改了哪些文件。
- 如果仅更改 web.QA.Config,则将 "FullBuild" 变量更新为 "false"。
- 将原始完整构建任务设置为 运行 和 "Custom conditions":
and(succeeded(), eq(variables['FullBuild'], 'True'))
- 添加一些任务来转换 web.config 文件并使用 "Custom conditions" 将文件部署到 Azure:
and(succeeded(), eq(variables['FullBuild'], 'False'))
要转换 web.config 文件,您可以创建您的客户 powershell 脚本来执行此操作或使用一些构建任务,例如:Apply transformations.