文章详情
后端开发
ASP.NET Core 配置文件识别顺序
发布时间:2026-04-29 10:31
浏览次数:3
最后更新:2026-04-29 10:48
asp.net core对于配置文件的识别顺序分析
正文内容
规则:加载顺序 = 优先级从低到高,后加载的会覆盖前面的同名配置
下面按「默认主机(WebApplication.CreateBuilder)」的标准顺序来进行说明:
一、先确定运行环境
运行环境决定了加载哪个appsettings.{环境}.json
- launchSettings.json(仅本地开发)
- 路径:
Properties/launchSettings.json - 只在
dotnet run/ VS 调试时生效,发布后不带此文件 - 里面可以设置:
"environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } - 优先级:最高(决定环境名)
- 路径:
- 系统环境变量:
ASPNETCORE_ENVIRONMENT- 没 launchSettings 时,读这个
- 没设置时,默认是 Production
二、配置文件加载顺序(优先级由低 → 高)
同一项配置,后面加载的覆盖前面的
appsettings.json:(所有环境的公共默认配置)appsettings.{Environment}.json:例如以下两项,会覆盖
appsettings.json同名键:- Development:appsettings.Development.json
- Production:appsettings.Production.json
用户机密(User Secrets):仅 Development 环境有效,用于本地开发存密码、密钥,不提交到代码仓库
路径:
%APPDATA%\Microsoft\UserSecrets\<user-secret-id>\secrets.json系统环境变量
- 所有环境变量,特别前缀:
ASPNETCORE_、DOTNET_ - 配置键写法:
Logging__LogLevel__Default(双下划线代表层级)
- 所有环境变量,特别前缀:
命令行参数(最高优先级):临时覆盖所有配置
dotnet run -- Logging:LogLevel:Default=Debug
三、完整优先级总结(从低到高)
appsettings.json
👆(覆盖)
appsettings.{Environment}.json
👆(覆盖,仅开发)
用户机密 secrets.json
👆(覆盖)
环境变量
👆(覆盖,最高)
命令行参数
特别提醒:
launchSettings.json只决定环境名,不参与应用配置键值覆盖(它只影响启动时的环境变量)
正文内容已启用复制保护,代码块仍支持复制。
评论区
0 条已展示评论
发表评论
发表评论
提交后将进入人工审核,审核通过后才会展示。
读者留言
以下仅展示已通过审核的评论内容。