在 ASP.NET Core / Blazor(Generic Host)里,同一个配置键的覆盖遵循原则:后添加的 ConfigurationProvider 优先级更高(后者覆盖前者)。默认模板大致是按下面顺序叠加的:
appsettings.jsonappsettings.{Environment}.json(例如appsettings.Development.json)- (仅开发环境)User Secrets(用户机密)
- 环境变量(Environment Variables)
- 命令行参数(Command-line arguments)
补充两点常见“覆盖源”:
launchSettings.json本身不是配置源,但它会在调试启动时注入环境变量(如ASPNETCORE_ENVIRONMENT,以及自定义环境变量),因此实际上发生在第 4 步。- 如果你在
Program.cs里额外调用了builder.Configuration.AddJsonFile(...) / AddIniFile(...) / AddAzureKeyVault(...)等,它们的位置决定优先级:加在越后面,覆盖能力越强。