.NET Core environment variable returns null

Thomas picture Thomas · Aug 29, 2019 · Viewed 12.7k times · Source

I have a .NET Core console application. I'm trying to retrieve the environment variable using the below code.

var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");

However, the variable "environment" always return null. I set the environment variable "ASPNETCORE_ENVIRONMENT" through

Control Panel -> System Properties -> Environment Variables -> System Variables

I also tried setting the environment variable using the command set ASPNETCORE_ENVIRONMENT=development, but that also did not work. When I debug the code (F5) in Visual Studio, the variable always return null. I have made sure that there aren't any spaces where I set the variable, or in my code where I read it. Is there anything I'm missing?

Answer

Paul Lorica picture Paul Lorica · Aug 29, 2019

I think setting the environment variable would only work if you started your console application via dotnet run:

When the ASPNETCORE_ENVIRONMENT environment variable is set globally, it takes effect for dotnet run in any command window opened after the value is set.

From: Use multiple environments in ASP.NET Core


Try setting it it your Debug properties.

Right click your project in Visual Studio and select PropertiesDebug.

Set the environment variable as shown in the image below.

Enter image description here