You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在ASPNETCORE_ENVIRONMENT中指定多个appsettings文件?

关于在launchSettings.json中指定多个appsettings文件的问题

首先明确:ASPNETCORE_ENVIRONMENT环境变量不支持数组格式,你示例里的["Development", "AddOn"]写法是无效的,无法被ASP.NET Core识别。

不过要实现加载多个额外配置文件的需求,有两种可行方案:

方案1:用分号分隔多个环境名称

ASP.NET Core 3.1及以后版本支持通过分号分隔多个环境名称,将ASPNETCORE_ENVIRONMENT设为单个字符串即可。修改launchSettings.json如下:

"profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "swagger",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development;AddOn"
      }
    }
  }

配置文件的加载顺序为:

  • appsettings.json(基础配置)
  • appsettings.Development.json(Development环境配置)
  • appsettings.AddOn.json(AddOn环境配置)
  • appsettings.Development.AddOn.json(如果存在,对应两个环境的叠加配置)
    后面加载的配置文件中,同名配置项会覆盖前面的。

方案2:手动在代码中添加配置文件

如果你需要更灵活的控制(比如只在特定环境加载额外配置,或者加载非环境命名的配置文件),可以在Program.cs(.NET 6+)中手动添加配置源:

var builder = WebApplication.CreateBuilder(args);

// 加载默认配置后,添加额外的AddOn配置文件
builder.Configuration.AddJsonFile(
    "appsettings.AddOn.json",
    optional: true,  // 设为true表示文件不存在也不会报错
    reloadOnChange: true  // 开启配置文件热重载
);

// 可选:仅在Development环境下加载额外的开发环境AddOn配置
if (builder.Environment.IsDevelopment())
{
    builder.Configuration.AddJsonFile(
        "appsettings.Development.AddOn.json",
        optional: true,
        reloadOnChange: true
    );
}

// 后续的服务注册等逻辑...
var app = builder.Build();

内容的提问来源于stack exchange,提问作者Meeth46

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 11:20:40