DotNetEnv 1.2.0
See the version list below for details.
dotnet add package DotNetEnv --version 1.2.0
NuGet\Install-Package DotNetEnv -Version 1.2.0
<PackageReference Include="DotNetEnv" Version="1.2.0" />
paket add DotNetEnv --version 1.2.0
#r "nuget: DotNetEnv, 1.2.0"
// Install DotNetEnv as a Cake Addin #addin nuget:?package=DotNetEnv&version=1.2.0 // Install DotNetEnv as a Cake Tool #tool nuget:?package=DotNetEnv&version=1.2.0
dotnet-env
A .NET library to load environment variables from .env files. Supports .NET Core and .NET Framework
Installation
Available on NuGet
Visual Studio:
PM> Install-Package DotNetEnv
.NET Core CLI:
dotnet add package DotNetEnv
Usage
Load env file
Load()
will automatically look for a .env
file in the current directory
DotNetEnv.Env.Load();
Or you can specify the path to the .env
file
DotNetEnv.Env.Load("./path/to/.env");
It's also possible to load the (text) file as a Stream
using (var stream = File.OpenRead("./path/to/.env"))
{
DotNetEnv.Env.Load(stream);
}
Accessing environment variables
The variables in the .env
can then be accessed through the System.Environment
class
System.Environment.GetEnvironmentVariable("IP");
Or through on of the helper methods:
DotNetEnv.Env.GetString("A_STRING");
DotNetEnv.Env.GetBool("A_BOOL");
DotNetEnv.Env.GetInt("AN_INT");
DotNetEnv.Env.GetDouble("A_DOUBLE");
The helper methods also has a optional second argument which specifies what value to return if the variable is not found:
DotNetEnv.Env.GetString("THIS_DOES_NOT_EXIST", "Variable not found");
Additional arguments
You can also control whitespace trimming and allowing hashes in values
DotNetEnv.Env.Load(false, false);
Both parameters default to true, which means:
trimWhitespace
, first arg: true in order to trim leading and trailing whitespace from keys and values such that
KEY = value
Would then be available as
"value" == System.Environment.GetEnvironmentVariable("KEY")
null == System.Environment.GetEnvironmentVariable(" KEY ")
False would mean:
" value" == System.Environment.GetEnvironmentVariable(" KEY ")
null == System.Environment.GetEnvironmentVariable("KEY")
isEmbeddedHashComment
, second arg: true in order to allow inline comments
KEY=value # comment
Would then be available as
"value" == System.Environment.GetEnvironmentVariable("KEY")
False would mean:
"value # comment" == System.Environment.GetEnvironmentVariable("KEY")
Which is most useful when you want to do something like:
KEY=value#moreValue#otherValue#etc
unescapeQuotedValues
, third arg: true in order to unescape/parse quoted (single or double) values as being strings with escaped chars such as newline ("\n"), but also handles unicode chars (e.g. "\u00ae" and "\U0001F680") -- note that you can always include unescaped unicode chars anyway (e.g. "日本") if your .env is in UTF-8. Also note that there is no need to escape quotes inside.
KEY="quoted\n\tvalue"
Would then be available as
"quoted
value" == System.Environment.GetEnvironmentVariable("KEY")
False would mean:
"\"quoted\\n\\tvalue\"" == System.Environment.GetEnvironmentVariable("KEY")
clobberExistingVars
, fourth arg: false to avoid overwriting existing environment variables
KEY=value
System.Environment.SetEnvironmentVariable("KEY", "really important value, don't overwrite");
DotNetEnv.Env.Load(false, false, false, false); // fourth arg false, don't overwrite existing variables
System.Environment.GetEnvironmentVariable("KEY"); // == "really important value, don't overwrite"
Issue Reporting
If you have found a bug or if you have a feature request, please report them at this repository issues section.
License
This project is licensed under the MIT license. See the LICENSE file for more info.
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. |
.NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard1.3 is compatible. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 was computed. netstandard2.1 was computed. |
.NET Framework | net46 was computed. 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 | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
Universal Windows Platform | uap was computed. uap10.0 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.3
- NETStandard.Library (>= 1.6.1)
NuGet packages (24)
Showing the top 5 NuGet packages that depend on DotNetEnv:
Package | Downloads |
---|---|
hexasync.infrastructure.dotnetenv
Package Description |
|
Corgibytes.Freshli.Lib
Core library for collecting historical metrics about a project's dependencies |
|
CatConsult.EnvConfigurationProvider
A .NET Configuration Provider that offers a fluent API for loading and transforming environment variables from the OS and .env files |
|
CatConsult.Extensions.EnvFileConfigurationProvider
Package Description |
|
Rave.NET
Flutterwave RAVE Payment API Library for .NET. |
GitHub repositories (10)
Showing the top 5 popular GitHub repositories that depend on DotNetEnv:
Repository | Stars |
---|---|
Azure/data-api-builder
Data API builder provides modern REST and GraphQL endpoints to your Azure Databases and on-prem stores.
|
|
mehdihadeli/food-delivery-microservices
🍔 A practical and imaginary food delivery microservices, built with .Net 8, MassTransit, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
|
|
spark-dotnet/framework
Build production ready, full-stack web applications fast without sweating the small stuff.
|
|
streetwriters/notesnook-sync-server
Sync server for Notesnook (self-hosting in alpha)
|
|
mehdihadeli/food-delivery-modular-monolith
🌭 A practical and imaginary food and grocery delivery modular monolith, built with .Net 8, Domain-Driven Design, CQRS, Vertical Slice Architecture, Event-Driven Architecture, and the latest technologies.
|
Version | Downloads | Last updated |
---|---|---|
3.1.1 | 112,711 | 8/20/2024 |
3.1.0 | 52,507 | 7/30/2024 |
3.0.0 | 948,365 | 1/6/2024 |
2.5.0 | 1,779,187 | 2/3/2023 |
2.3.0 | 1,713,646 | 1/15/2022 |
2.2.0 | 431,316 | 9/18/2021 |
2.1.1 | 701,250 | 3/2/2021 |
2.1.0 | 10,091 | 2/22/2021 |
2.0.0 | 146,372 | 12/16/2020 |
1.4.0 | 851,902 | 12/9/2019 |
1.3.1 | 806 | 12/5/2019 |
1.2.0 | 481,571 | 4/5/2018 |
1.1.0 | 10,529 | 11/2/2017 |
1.0.1 | 4,161 | 6/18/2017 |
1.0.0 | 7,156 | 7/7/2016 |