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

ASP.NET Core 2.1中如何创建多个AppSetting.json文件?

刚从.NET转到ASP.NET Core 2.1,肯定会怀念以前按环境拆分web.config的便利吧?别担心,ASP.NET Core里有对应的实现——环境特定的appsettings.json文件,完全能满足你的需求,下面一步步给你讲清楚:

1. 创建环境专属的配置文件

首先在你的项目里创建以下文件(命名是关键):

  • appsettings.json:这是基础配置文件,所有环境都会加载它里面的内容
  • appsettings.Development.json:开发环境专用配置,比如调试用的数据库连接、日志级别等
  • appsettings.Production.json:生产环境专用配置,比如正式数据库连接、更严格的日志设置
    你还可以根据需要添加其他环境的文件,比如appsettings.Staging.json(预发布环境),命名规则统一为appsettings.{环境名称}.json即可。
2. 配置的加载优先级

ASP.NET Core会自动按顺序加载配置,后面加载的配置会覆盖前面的同名项:

  • 先加载appsettings.json里的基础配置
  • 再加载当前运行环境对应的appsettings.{环境名称}.json,比如开发环境就加载Development后缀的文件,里面的配置会替换基础文件里的相同key
  • 最后还会加载环境变量、命令行参数等(这部分是额外扩展,和文件配置相关的主要是前两步)
3. 指定当前运行环境

接下来要告诉程序应该使用哪个环境,有几种常用方式:

  • 通过launchSettings.json设置(开发阶段):打开项目Properties文件夹下的launchSettings.json,找到environmentVariables里的ASPNETCORE_ENVIRONMENT,设置成对应的环境名,示例:
"profiles": {
  "IIS Express": {
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Development"
    }
  },
  "YourProjectName": {
    "commandName": "Project",
    "environmentVariables": {
      "ASPNETCORE_ENVIRONMENT": "Production"
    }
  }
}
  • 通过系统环境变量设置(服务器部署):在生产服务器上设置环境变量,Windows下可以用命令:setx ASPNETCORE_ENVIRONMENT "Production";Linux/macOS下用:export ASPNETCORE_ENVIRONMENT=Production
  • 通过命令行参数启动:运行程序时加上参数指定环境,比如:dotnet run --environment Production 或者简写为 dotnet run -e Production
4. 验证配置是否生效

你可以在代码里注入IConfiguration来读取配置,验证是否加载了对应环境的内容,示例:

public class HomeController : Controller
{
    private readonly IConfiguration _configuration;

    public HomeController(IConfiguration configuration)
    {
        _configuration = configuration;
    }

    public IActionResult Index()
    {
        // 读取某个配置项,比如数据库连接字符串
        var dbConnection = _configuration.GetConnectionString("DefaultConnection");
        // 可以输出到日志或者页面,验证是否是当前环境的配置
        return View();
    }
}
额外小提示
  • 如果多个环境有共享的配置,不用重复写在每个环境文件里,只需要放在基础的appsettings.json里就行,环境文件只放差异配置
  • 敏感信息(比如API密钥、数据库密码)不要硬编码到配置文件里,开发环境可以用User Secrets,生产环境可以用Azure Key Vault或者其他密钥管理工具,这能大大提升安全性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:15:49