我们有一个C#ASP.MVC解决方案,该解决方案由许多支持多个解决方案配置的独立项目组成。每种配置都就位,因为每种环境要求具有不同的设置,同时共享相同的代码库。
这些设置存储在多个.config
文件中,并且使用转换文件来应用特定于环境的设置。
例如,我们在 Logging 项目中有一个 Logging.config 文件,该文件存储Logger设置和相关的转换文件。在解决方案资源管理器中,它看起来像这样:
我们正在使用Azure DevOps Pipelines创建一个生成程序包,但是即使不影响代码库,我们也不得不多次重建项目,因此我们正在寻找一种优化过程的方法,理想情况下应该看起来像这样:
优点是我们可以在每个环境中部署相同的代码,并在网站目录的顶部应用相关的配置。
如何实现?
答案 0 :(得分:0)
构建项目后,只需在发布管道中添加一个名为 Azure App Service Deploy 的任务,如果您在下选择 XML转换,转换将自动完成>文件转换和变量替换选项菜单。
请注意,配置转换将针对*.EnvironmentName.config
文件上的*.config
运行,因此所有配置必须等于环境名称。例如,如果您的环境称为test,则您的配置应为*.test.config
另一种方法是使用 XDT转换任务,该任务专门用于此用途。在转换字段中,您可以按以下方式设置转换:Web.$(environment).config => web.config
,其中$(environment)是变量,在其中设置环境名称。
答案 1 :(得分:0)