首页 > 解决方案 > 跨项目和环境共享/转换应用程序设置

问题描述

我得到了一个包含多个项目(函数应用程序和一个 Web API)的 Visual Studio 解决方案和一个在所有项目之间共享的数据层。appsettings.json我已经根据这篇文章设置了解决方案,因此所有项目都共享相同的配置( ): https ://andrewlock.net/sharing-appsettings-json-configuration-files-between-projects-in-asp-net-core /

所有项目都基于.net core。

我已经为开发环境设置了构建和发布管道。但我需要一个测试和生产环境。如何在将共享配置发布到测试和生产环境之前对其进行转换?

标签: azureasp.net-coreazure-devopsweb-deployment

解决方案


你没有。这不是 ASP.NET Core 中配置的工作方式。配置被覆盖,而不是转换。如何应用不同的配置源有一个操作顺序,基本上就是它们的注册顺序。默认值为 JSON < 特定于环境的 JSON < 用户机密 < 环境变量 < 命令行参数。

如果您需要配置因环境而异,您将依赖环境特定的 JSON 文件(用于常规配置)或环境变量和/或 Azure Key Vault(用于机密)之类的东西。由于所有这些都在配置注册的后期出现,因此您在此处设置的任何值都将覆盖appsettings.json.

对于环境特定的 JSON 之类的内容,加载取决于 的值ASPNETCORE_ENVIRONMENT,可以将其设置为环境变量或作为命令行参数传递--environment。在任何一种情况下,值集都对应于 的{environment}部分appsettings.{environment}.json。换句话说,如果您将环境设置为Production,那么appsettings.Production.json将被加载到配置中(如果存在)。环境变量与环境本身相关,因此不依赖于任何特定的环境值。


推荐阅读