文章详情 后端开发

ASP.NET Core 配置文件识别顺序

发布时间:2026-04-29 10:31 浏览次数:3 最后更新:2026-04-29 10:48

asp.net core对于配置文件的识别顺序分析

正文内容

规则:加载顺序 = 优先级从低到高,后加载的会覆盖前面的同名配置

下面按「默认主机(WebApplication.CreateBuilder)」的标准顺序来进行说明:

一、先确定运行环境

运行环境决定了加载哪个appsettings.{环境}.json

  1. launchSettings.json(仅本地开发)
    • 路径:Properties/launchSettings.json
    • 只在 dotnet run / VS 调试时生效,发布后不带此文件
    • 里面可以设置:
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
      
    • 优先级:最高(决定环境名)
  2. 系统环境变量:ASPNETCORE_ENVIRONMENT
    • 没 launchSettings 时,读这个
    • 没设置时,默认是 Production

二、配置文件加载顺序(优先级由低 → 高)

同一项配置,后面加载的覆盖前面的

  1. appsettings.json:(所有环境的公共默认配置)

  2. appsettings.{Environment}.json

    例如以下两项,会覆盖 appsettings.json 同名键:

    • Development:appsettings.Development.json
    • Production:appsettings.Production.json
  3. 用户机密(User Secrets):仅 Development 环境有效,用于本地开发存密码、密钥,不提交到代码仓库

    路径:%APPDATA%\Microsoft\UserSecrets\<user-secret-id>\secrets.json

  4. 系统环境变量

    • 所有环境变量,特别前缀:ASPNETCORE_DOTNET_
    • 配置键写法:Logging__LogLevel__Default(双下划线代表层级)
  5. 命令行参数(最高优先级):临时覆盖所有配置

    dotnet run -- Logging:LogLevel:Default=Debug
    

三、完整优先级总结(从低到高)

appsettings.json
👆(覆盖)
appsettings.{Environment}.json
👆(覆盖,仅开发)
用户机密 secrets.json
👆(覆盖)
环境变量
👆(覆盖,最高)
命令行参数

特别提醒:launchSettings.json 只决定环境名,不参与应用配置键值覆盖(它只影响启动时的环境变量)

正文内容已启用复制保护,代码块仍支持复制。

评论区

0 条已展示评论
发表评论

发表评论

提交后将进入人工审核,审核通过后才会展示。

邮箱仅用于必要的联系与基础风控,不会在页面中公开展示。

请文明发言,避免发布广告、链接或敏感内容;短时间内频繁提交会被限制。

隐私提示:提交评论即表示你同意站点为评论展示、审核、防刷与安全风控目的处理你填写的昵称、邮箱和评论内容。

其中邮箱不会公开展示,也不会用于与评论无关的公开用途。

已展示评论

读者留言

以下仅展示已通过审核的评论内容。

0 条评论
当前还没有通过审核的评论,后续可在后台审核后展示。