ASP .NET CORE 根据环境变量支持多个 appsettings.json

Posted axel10

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP .NET CORE 根据环境变量支持多个 appsettings.json相关的知识,希望对你有一定的参考价值。

 

在项目开发的过程中,我们一般都会根据开发环境和生产环境编写两套配置文件。我们该怎么做才能实现一个项目根据环境来自动切换配置文件呢?

我们来看看微软的官方文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/ ,一个应用程序的配置可以来自多个地方,比如命令行参数,环境变量,json文件,xml文件等等,其中根本文最相关的就是这段:

A typical sequence of configuration providers is:

  1. Files (appsettings.json, appsettings.<Environment>.json, where <Environment> is the app‘s current hosting environment)
  2. User secrets (Secret Manager) (in the Development environment only)
  3. Environment variables
  4. Command-line arguments

其中第一条已经写得很明白了,appsettings.json, appsettings.<Environment>.json 这部分文件都会默认的被加载到项目里。其中的<Environment> 是名为"ASPNETCORE_ENVIRONMENT"的环境变量(https://andrewlock.net/how-to-set-the-hosting-environment-in-asp-net-core/)。不配置的时候默认是Production,Visual Studio在LaunchSetting.json中配置成了Development,它可以是任何值。Asp.net core应用也会根据这个变量去加载相应的配置文件。比如Production环境下如果不配置ASPNETCORE_ENVIRONMENT就会默认的去加载appsettings.json和appsettings.Production.json。

值得注意的一点是appsettings.json的优先级是低于appsettings.<Environment>.json的。appsettings.<Environment>.json可以覆盖appsettings.json中的配置项。

以上是关于ASP .NET CORE 根据环境变量支持多个 appsettings.json的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET Core学习——7

asp.net core环境变量详解

ASP.NET Core 托管环境变量被忽略

[六] ASP.NET Core 开发人员异常页面和环境变量

在 ASP.NET Core 中读取环境变量

如何使用环境变量覆盖 ASP.NET Core 配置数组设置