DotEnv.Microsoft.Extensions.Configuration
1.0.0
dotnet add package DotEnv.Microsoft.Extensions.Configuration --version 1.0.0
NuGet\Install-Package DotEnv.Microsoft.Extensions.Configuration -Version 1.0.0
<PackageReference Include="DotEnv.Microsoft.Extensions.Configuration" Version="1.0.0" />
<PackageVersion Include="DotEnv.Microsoft.Extensions.Configuration" Version="1.0.0" />
<PackageReference Include="DotEnv.Microsoft.Extensions.Configuration" />
paket add DotEnv.Microsoft.Extensions.Configuration --version 1.0.0
#r "nuget: DotEnv.Microsoft.Extensions.Configuration, 1.0.0"
#:package DotEnv.Microsoft.Extensions.Configuration@1.0.0
#addin nuget:?package=DotEnv.Microsoft.Extensions.Configuration&version=1.0.0
#tool nuget:?package=DotEnv.Microsoft.Extensions.Configuration&version=1.0.0
Features
Unambitious .env file configuration provider.
Integrates with Microsoft.Extensions.Configuration so .env values can be read like other config sources.
Lightweight, minimal dependencies.
Why use it
If you’re building a .NET app and want to:
- manage configuration via .env files (common in many ecosystems)
- avoid hardcoding sensitive values or spanning environment setup differences
- support local development setups easily
...then .Env.NET helps you do that cleanly within the .NET configuration framework.
Basic Usage
Simple .env File Loading
Load a .env file from the application root with default settings (optional, reload on change):
var configuration = new ConfigurationBuilder()
.AddDotEnvFile()
.Build();
This will look for a .env file in the application's base directory with these defaults:
- File is optional (won't throw if missing)
- Automatically reloads when file changes
Load Specific .env File
Load a .env file from a specific path:
var configuration = new ConfigurationBuilder()
.AddDotEnvFile("config/app.env")
.Build();
Required .env File
Make the .env file required (throws exception if missing):
var configuration = new ConfigurationBuilder()
.AddDotEnvFile(".env", optional: false)
.Build();
Disable Reload on Change
Load .env file without automatic reloading:
var configuration = new ConfigurationBuilder()
.AddDotEnvFile(".env", optional: true, reloadOnChange: false)
.Build();
Complete Examples
ASP.NET Core Web Application
var builder = WebApplication.CreateBuilder(args);
// Add .env file support
builder.Configuration.AddDotEnvFile();
// Add other configuration sources
builder.Configuration
.AddJsonFile("appsettings.json", optional: false)
.AddJsonFile($"appsettings.{builder.Environment.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
var app = builder.Build();
Console Application
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using DotEnvConfigProvider;
var host = Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((context, config) =>
{
config.AddDotEnvFile(".env", optional: true, reloadOnChange: true);
})
.ConfigureServices((context, services) =>
{
// Register your services here
})
.Build();
Multiple Environment Files
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development";
var configuration = new ConfigurationBuilder()
.AddDotEnvFile(".env", optional: true) // Base .env file
.AddDotEnvFile($".env.{environment}", optional: true) // Environment-specific
.AddDotEnvFile(".env.local", optional: true) // Local overrides
.Build();
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
-
net8.0
-
net9.0
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 2,657 | 9/22/2025 |
Initial Release