ASP .NET CORE 根据环境变量支持多个 appsettings.json
在项目开发的过程中,我们一般都会根据开发环境和生产环境编写两套配置文件。我们该怎么做才能实现一个项目根据环境来自动切换配置文件呢?
我们来看看微软的官方文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration/ ,一个应用程序的配置可以来自多个地方,比如命令行参数,环境变量,json文件,xml文件等等,其中和本文最相关的就是这段:
A typical sequence of configuration providers is:
- Files (appsettings.json, appsettings.<Environment>.json, where <Environment> is the app's current hosting environment)
- User secrets (Secret Manager) (in the Development environment only)
- Environment variables
- 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
- Talking appsettings.json in Asp.Net Core
- [转]Setting the NLog database connection string in the ASP.NET Core appsettings.json
- 阿里云容器服务与ASP.NET Core部署:用 docker secrets 保存 appsettings.Production.json
- Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
- Jexus 5.8.2正式发布! 为Asp.Net Core生产环境提供平台支持
- Jexus 5.8.2 Beta1发布:为Asp.Net Core进入生产环境提供平台支持
- ASP.NET Core 从 gitlab-ci 环境变量读取配置
- Adding appsettings.json to a .NET Core console app
- 用"hosting.json"配置ASP.NET Core站点的Hosting环境
- Asp.net Core WebApi 支持json/xml格式的数据返回
- 用"hosting.json"配置ASP.NET Core站点的Hosting环境
- Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
- Asp.Net Core 中无法使用 ConfigurationManager.AppSettings
- Windows + IIS 环境部署Asp.Net Core App
- Asp.Net Core 如何在 IIS 中设置环境变量
- ASP.NET Core环境变量和启动设置的配置教程
- 快速搭建CentOS+ASP.NET Core环境支持WebSocket
- Jexus 5.8.2 正式发布为Asp.Net Core进入生产环境提供平台支持
- Windows + IIS 环境部署Asp.Net Core App