asp.net 配置文件的加载顺序

3 阅读1分钟

在 ASP.NET Core / Blazor(Generic Host)里,同一个配置键的覆盖遵循原则:后添加的 ConfigurationProvider 优先级更高(后者覆盖前者)。默认模板大致是按下面顺序叠加的:

  1. appsettings.json
  2. appsettings.{Environment}.json(例如 appsettings.Development.json
  3. (仅开发环境)User Secrets(用户机密)
  4. 环境变量(Environment Variables)
  5. 命令行参数(Command-line arguments)

补充两点常见“覆盖源”:

  • launchSettings.json 本身不是配置源,但它会在调试启动时注入环境变量(如 ASPNETCORE_ENVIRONMENT,以及自定义环境变量),因此实际上发生在第 4 步。
  • 如果你在 Program.cs 里额外调用了 builder.Configuration.AddJsonFile(...) / AddIniFile(...) / AddAzureKeyVault(...) 等,它们的位置决定优先级:加在越后面,覆盖能力越强。