【发布时间】:2019-06-03 11:19:42
【问题描述】:
我们有一个 C# ASP.MVC 解决方案,由许多支持多种解决方案配置的独立项目组成。每个配置都已到位,因为每个环境需要具有不同的设置,同时共享相同的代码库。
设置存储在多个.config 文件中,并使用转换文件应用环境特定设置。
例如,我们在 Logging 项目中有一个 Logging.config 文件,该文件存储了 Logger 设置和相关的转换文件。在解决方案资源管理器中,它看起来像这样:
- Logging.config
- Logging.Dev.config
- Logging.UAT.config
- Logging.Prod.config
- 等等……
我们正在使用 Azure DevOps Pipelines 创建一个构建包,但是即使代码库不受影响,我们也不得不多次重新构建项目,因此我们正在寻找一种优化流程的方法,理想情况下应该看起来像这样:
- 在发布模式下构建代码
- 发布使用开发设置转换的配置
- 发布使用 UAT 设置转换的配置
- 发布使用 Prod 设置转换的配置
- 等等……
优点是我们可以在每个环境中部署相同的代码,并将相关配置应用到网站目录的顶部。
如何做到这一点?
【问题讨论】:
-
您会在部署时执行此操作。有 1 个构建过程,然后当您部署到一个环境时,您只需删除其他环境的配置文件并为您要部署到的环境重命名。这取决于您如何部署以及如何执行此操作,但我们做同样的事情,只是有一个 powershell 脚本,它接受一个参数来识别环境。
标签: c# asp.net-mvc azure-devops msdeploy webdeploy