推荐一个开源库,方便我们从 .env 文件加载环境变量,简化应用程序配置管理。
01 项目简介
dotenv.net是一个职场 .NET Core 环境中读取 .env 文件的库。它可以轻松地加载环境变量到应用程序的配置中,从而实现不同环境下的配置管理。
-
简单且无痛🎯:
.env
只需最少的设置即可轻松加载和读取文件。 -
灵活的配置🔧:使用各种选项自定义环境变量的加载方式。
-
依赖注入支持🧩:与流行的 DI 框架无缝协作。
-
跨平台🌍:与.NET Core、.NET 5 及更高版本完全兼容。
02 快速入门
1、安装
使用 .NET CLI
csharp
dotnet add package dotenv.net
使用 Visual Studio 包管理器
Install-Package dotenv.net
2、简单使用方法
ini
using dotenv.net;
DotEnv.Load();
var envVars = DotEnv.Read();
Console.WriteLine(envVars["KEY"]);
其中Load()的时候,会从而应用程序的目录读取.env文件。
3、自定义.env文件路径
php
DotEnv.Load(options: new DotEnvOptions(envFilePaths: new[] {"./path/to/env", "./path/to/second/env"}));
4、启用异常处理
php
DotEnv.Load(options: new DotEnvOptions(ignoreExceptions: false));
5、在父目录中搜索.env文件
php
DotEnv.Load(options: new DotEnvOptions(probeForEnv: true, probeLevelsToSearch: 2));
6、去掉值的空白字符
php
DotEnv.Load(options: new DotEnvOptions(trimValues: true));
7、多次加载,是否不覆盖现有环境变量
php
DotEnv.Load(options: new DotEnvOptions(overwriteExistingVars: false));
8、提供一个流畅的 API,更简洁直观的语法
scss
// 加载环境变量
DotEnv.Fluent()
.WithExceptions()
.WithEnvFiles("./path/to/env")
.WithTrimValues()
.WithEncoding(Encoding.ASCII)
.WithOverwriteExistingVars()
.WithProbeForEnv(probeLevelsToSearch: 6)
.Load();
// 读取环境变量
var envVars = DotEnv.Fluent()
.WithoutExceptions()
.WithEnvFiles() //默认为 .env
.WithoutTrimValues()
.WithDefaultEncoding()
.WithoutOverwriteExistingVars()
.WithoutProbeForEnv()
.Read();
9、另外提供 Utilities 命名空间,以类型化方式读取环境变量的额外方法:
ini
using dotenv.net.Utilities;
var stringValue = EnvReader.GetStringValue("KEY");
var intValue = EnvReader.GetIntValue("PORT");
var boolValue = EnvReader.GetBooleanValue("ENABLE_FEATURE");
更多的方法如下:

03 项目地址
- End -
推荐阅读
SmartFormat:轻量级文本模板库,轻松替代 string.Format