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
.env
files 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.net
Using Visual Studio Package Manager:
Install-Package dotenv.net
Manual 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
.env
file 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
.env
File 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
.env
Files 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 | 4 | 07/12/2025 |
3.2.1 | 74 | 09/21/2024 |
3.2.0 | 50 | 07/23/2024 |
3.1.3 | 101 | 02/05/2024 |
3.1.2 | 52 | 07/23/2024 |
3.1.1 | 49 | 07/23/2024 |
3.1.0 | 51 | 07/23/2024 |
3.0.0 | 50 | 07/23/2024 |
2.1.3 | 50 | 07/23/2024 |
2.1.1 | 52 | 07/23/2024 |
2.1.0 | 50 | 07/23/2024 |
2.0.1 | 51 | 07/23/2024 |
2.0.0 | 53 | 07/23/2024 |
1.0.6 | 56 | 07/23/2024 |
1.0.5 | 50 | 07/23/2024 |
1.0.4 | 41 | 07/23/2024 |
1.0.3 | 62 | 07/23/2024 |
1.0.2 | 52 | 07/23/2024 |
1.0.1 | 50 | 07/23/2024 |
1.0.0 | 42 | 07/23/2024 |