dotenv.net 4.0.0
dotenv.net 🌟
dotenv.net is a lightweight and intuitive library designed to simplify the process of managing environment variables in .NET applications. By seamlessly integrating with .env files, it allows developers to maintain a clean and secure configuration setup, ensuring that sensitive information is kept out of source code. 🔒
Whether you're building a small project or a large-scale application, dotenv.net provides the tools you need to efficiently load, read, and manage environment variables, with support for dependency injection (DI) in popular DI systems. 🛠️
Why Use dotenv.net? 🤔
- Simple and Pain-Free 🎯: Easily load and read
.envfiles with minimal setup. - Flexible Configuration 🔧: Customize how environment variables are loaded with a variety of options.
- Dependency Injection Support 🧩: Works seamlessly with popular DI frameworks.
- Cross-Platform 🌍: Fully compatible with .NET Core, .NET 5, and beyond.
- Open Source 💡: Actively maintained and supported by the community.
Getting Started 🚀
Installation 📦
You can install dotenv.net via NuGet:
Using the .NET CLI:
dotnet add package dotenv.netUsing Visual Studio Package Manager:
Install-Package dotenv.netManual Installation (via
.csproj):<PackageReference Include="dotenv.net" Version="4.0.0"/>
Usage 🛠️
Basic Setup 🏗️
Add the Namespace:
using dotenv.net;Load Environment Variables:
DotEnv.Load();This will automatically locate and load the
.envfile in the same directory as your application.
Advanced Configuration ⚙️
dotenv.net offers a wide range of configuration options to tailor the loading process to your needs:
Specify Custom
.envFile Paths:DotEnv.Load(options: new DotEnvOptions(envFilePaths: new[] {"./path/to/env", "./path/to/second/env"}));Enable Exception Handling:
DotEnv.Load(options: new DotEnvOptions(ignoreExceptions: false));Search for
.envFiles in Parent Directories:DotEnv.Load(options: new DotEnvOptions(probeForEnv: true, probeLevelsToSearch: 2));Trim Whitespace from Values:
DotEnv.Load(options: new DotEnvOptions(trimValues: true));Skip Overwriting Existing Environment Variables:
DotEnv.Load(options: new DotEnvOptions(overwriteExistingVars: false));Support the Export Syntax:
DotEnv.Load(options: new DotEnvOptions(supportExportSyntax: true));
Reading Environment Variables 📖
Use the Read() method to retrieve environment variables without modifying the system environment:
var envVars = DotEnv.Read();
Console.WriteLine(envVars["KEY"]); // Outputs the value associated with 'KEY'
Fluent API 🎨
For a more expressive syntax, dotenv.net provides a fluent API:
// Load environment variables with custom options
DotEnv.Fluent()
.WithExceptions()
.WithEnvFiles("./path/to/env")
.WithTrimValues()
.WithEncoding(Encoding.ASCII)
.WithOverwriteExistingVars()
.WithProbeForEnv(probeLevelsToSearch: 6)
.WithSupportExportSyntax()
.Load();
// Read environment variables
var envVars = DotEnv.Fluent()
.WithoutExceptions()
.WithEnvFiles() // Defaults to .env
.WithoutTrimValues()
.WithDefaultEncoding()
.WithoutOverwriteExistingVars()
.WithoutProbeForEnv()
.WithoutSupportExportSyntax()
.Read();
Environment Variable Helpers 🛠️
The Utilities namespace provides additional methods for reading environment variables in a typed manner:
using dotenv.net.Utilities;
var stringValue = EnvReader.GetStringValue("KEY");
var intValue = EnvReader.GetIntValue("PORT");
var boolValue = EnvReader.GetBooleanValue("ENABLE_FEATURE");
Available Methods 📋
| Method Name | Description | Return Type | Default (if applicable) |
|---|---|---|---|
HasValue(string key) |
Checks if a value is set for the given key. | bool |
N/A |
GetStringValue(string key) |
Retrieves a string value by key. Throws an exception if not found. | string |
N/A |
GetIntValue(string key) |
Retrieves an integer value by key. Throws an exception if not found. | int |
N/A |
GetDoubleValue(string key) |
Retrieves a double value by key. Throws an exception if not found. | double |
N/A |
GetDecimalValue(string key) |
Retrieves a decimal value by key. Throws an exception if not found. | decimal |
N/A |
GetBooleanValue(string key) |
Retrieves a boolean value by key. Throws an exception if not found. | bool |
N/A |
TryGetStringValue(string key, out string value) |
Safely retrieves a string value. Returns true if successful. |
bool |
null |
TryGetIntValue(string key, out int value) |
Safely retrieves an integer value. Returns true if successful. |
bool |
0 |
TryGetDoubleValue(string key, out double value) |
Safely retrieves a double value. Returns true if successful. |
bool |
0.0 |
TryGetDecimalValue(string key, out decimal value) |
Safely retrieves a decimal value. Returns true if successful. |
bool |
0.0m |
TryGetBooleanValue(string key, out bool value) |
Safely retrieves a boolean value. Returns true if successful. |
bool |
false |
Contributing 🤝
We welcome contributions from the community! If you have ideas, bug reports, or feature requests, please open an issue or submit a pull request.
Special Thanks to Our Contributors 🙏
A huge shoutout to everyone who has contributed to dotenv.net:
@bolorundurowb @joliveros @vizeke
@merqlove @tracker1 @NaturalWill
@texyh @jonlabelle @Gounlaf
@DTTerastar @Mondonno @caveman-dick
@VijoPlays bobbyg603
License 📜
dotenv.net is licensed under the MIT License. See the LICENSE file for more details.
Get Started Today! 🎉
Simplify your environment variable management with dotenv.net. Install the package, follow the quick start guide, and enjoy a cleaner, more secure configuration setup for your .NET applications.
Happy Coding! 🚀
No packages depend on dotenv.net.
| Version | Downloads | Last updated |
|---|---|---|
| 4.0.0 | 63 | 07/12/2025 |
| 3.2.1 | 120 | 09/21/2024 |
| 3.2.0 | 107 | 07/23/2024 |
| 3.1.3 | 143 | 02/05/2024 |
| 3.1.2 | 100 | 07/23/2024 |
| 3.1.1 | 99 | 07/23/2024 |
| 3.1.0 | 100 | 07/23/2024 |
| 3.0.0 | 102 | 07/23/2024 |
| 2.1.3 | 97 | 07/23/2024 |
| 2.1.1 | 109 | 07/23/2024 |
| 2.1.0 | 101 | 07/23/2024 |
| 2.0.1 | 108 | 07/23/2024 |
| 2.0.0 | 100 | 07/23/2024 |
| 1.0.6 | 110 | 07/23/2024 |
| 1.0.5 | 99 | 07/23/2024 |
| 1.0.4 | 90 | 07/23/2024 |
| 1.0.3 | 118 | 07/23/2024 |
| 1.0.2 | 106 | 07/23/2024 |
| 1.0.1 | 101 | 07/23/2024 |
| 1.0.0 | 88 | 07/23/2024 |