如何在.NET 6项目中读取环境变量?
.NET 6 环境变量读取与对应配置文件加载实现方案
核心实现方式
.NET 6 中读取环境变量、加载对应appsettings.json有两种兼容实现方式,可按需选择:
- 方式1:沿用.NET Core 3.1的原生读取逻辑,完全兼容无需修改
直接调用Environment.GetEnvironmentVariable读取系统环境变量即可,该方法在.NET 6中没有任何变更:var builder = WebApplication.CreateBuilder(args); // 读取ASPNETCORE_ENVIRONMENT环境变量 string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"); - 方式2:使用.NET 6 构建器封装的环境属性
你提到的builder.Environment是IWebHostEnvironment类型对象,需要读取它的EnvironmentName属性才能拿到环境值:var builder = WebApplication.CreateBuilder(args); // 直接通过构建器获取环境名,底层已经自动读取了ASPNETCORE_ENVIRONMENT的值 string environment = builder.Environment.EnvironmentName;
配置文件加载说明
实际上WebApplication.CreateBuilder初始化时已经默认实现了配置文件的自动加载逻辑,优先级如下:
- 加载基础配置
appsettings.json - 加载对应环境的配置
appsettings.{EnvironmentName}.json - 加载环境变量配置
- 加载命令行参数配置
如果需要额外自定义加载逻辑,可以手动修改Configuration配置源:
var builder = WebApplication.CreateBuilder(args); string environment = builder.Environment.EnvironmentName; // 手动追加自定义配置文件 builder.Configuration .AddJsonFile($"appsettings.{environment}.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); var app = builder.Build(); // 后续业务逻辑... app.Run();
内容的提问来源于stack exchange,提问作者o..o
相关产品推荐
相关产品推荐

