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

ASP.NET Web应用中如何从对应properties文件加载多环境appsettings.json值

实现从Properties文件加载配置到ASP.NET Web应用

要实现从application.{environment}.properties文件加载配置值到对应的appsettings.{environment}.json,你需要完成以下步骤:

1. 安装必要的NuGet包

ASP.NET Core默认不包含Properties配置文件的加载支持,你需要安装Microsoft.Extensions.Configuration.Properties包:

Install-Package Microsoft.Extensions.Configuration.Properties
# 或者使用.NET CLI
dotnet add package Microsoft.Extensions.Configuration.Properties

2. 修改配置构建代码

更新你的ConfigurationBuilder逻辑,添加对Properties文件的加载,同时确保正确获取当前运行环境:

using Microsoft.Extensions.Configuration;

// 获取当前环境,默认 fallback 到 Production
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production";

var builder = new ConfigurationBuilder()
    .SetBasePath(Directory.GetCurrentDirectory())
    // 加载基础JSON配置
    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
    // 加载对应环境的Properties文件(设置为可选,避免文件不存在时抛出异常)
    .AddPropertiesFile($"application.{environment}.properties", optional: true)
    // 加载对应环境的JSON配置(Properties中的同名配置会覆盖此处之前的内容)
    .AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true)
    // 最后加载环境变量,确保最高优先级
    .AddEnvironmentVariables();

关键说明

  • 配置优先级:配置源的添加顺序决定了优先级,后添加的配置源会覆盖前序源中的同名配置项。如果希望Properties文件的配置覆盖JSON文件的值,需要将AddPropertiesFile放在对应的AddJsonFile之后。
  • 环境变量识别:ASP.NET Core默认通过ASPNETCORE_ENVIRONMENT环境变量识别当前环境,你也可以通过launchSettings.json、命令行参数等方式指定环境。
  • 文件路径验证:确保application.{environment}.properties文件放置在项目根目录(与appsettings.json同目录),或者根据实际路径调整SetBasePath的参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:44:53