NetEnvExtensions 1.0.3
See the version list below for details.
dotnet add package NetEnvExtensions --version 1.0.3
NuGet\Install-Package NetEnvExtensions -Version 1.0.3
<PackageReference Include="NetEnvExtensions" Version="1.0.3" />
<PackageVersion Include="NetEnvExtensions" Version="1.0.3" />
<PackageReference Include="NetEnvExtensions" />
paket add NetEnvExtensions --version 1.0.3
#r "nuget: NetEnvExtensions, 1.0.3"
#:package NetEnvExtensions@1.0.3
#addin nuget:?package=NetEnvExtensions&version=1.0.3
#tool nuget:?package=NetEnvExtensions&version=1.0.3
NetEnvExtensions is an extension for .NET that automatically substitutes environment variable values into your application configuration (e.g., from appsettings.json or other sources) using the syntax ${VAR_NAME}
or ${VAR_NAME:default}
.
Features
- Supports environment variable substitution in any configuration value.
- Ability to specify default values:
${VAR_NAME:default}
. - Simple integration with Microsoft.Extensions.Configuration.
- Supports loading environment variables from a
.env
file via DotNetEnv.
Installation
Add the package to your project (example for NuGet):
dotnet add package NetEnvExtensions
Usage
- Import the namespace:
using NetEnvExtensions;
- Add the extension to your
IConfigurationBuilder
:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariableSubstitution();
var configuration = builder.Build();
- Use environment variables in your appsettings.json:
{
"ConnectionStrings": {
"DefaultConnection": "Server=${DB_HOST:localhost};Port=${DB_PORT:5432};User Id=${DB_USER};Password=${DB_PASS}"
}
}
If an environment variable is not defined, the default value will be used (if specified).
Loading .env files
To automatically load variables from a .env
file, use the path
parameter in the extension:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariableSubstitution(path: ".env");
var configuration = builder.Build();
Note: The
EnvironmentLoader
class has been removed. Use thepath
parameter inAddEnvironmentVariableSubstitution
to load.env
files.
Using LoadOptions.TraversePath()
If your project structure requires searching for a .env
file in parent directories, you can use the LoadOptions.TraversePath()
option from DotNetEnv:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariableSubstitution(path: ".env", options: LoadOptions.TraversePath());
var configuration = builder.Build();
This will make DotNetEnv search for the .env
file in the specified directory and all parent directories until it is found.
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 was computed. 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 was computed. 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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | 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.1
- DotNetEnv (>= 3.1.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.