
.NET 8 DOTNET_ENVIRONMENT vs ASPNETCORE_ENVIRONMENT
.NET 8 determina in che modalità sta girando, ovvero se si trova in Development o Production, guardando delle variabili di ambiente.
Per le web application la variabile si chiama ASPNETCORE_ENVIRONMENT, mentre per le console application la variabile si chiama DOTNET_ENVIRONMENT.
Le variabili ambiente possono condiziona il comportamento del nostro codice, ad esempio la funzionalità di Visual Studio 2022 Manage User Secrets è disabilitata quado si è in ambiente di Production.
In sviluppo, con Visual Studio 2022, si può preimpostare la variabile di ambiante andando nelle proprietà di progetto Debug, oppure agendo sul file JSON Properties/launchSettings.json
Per visualizzare via codice la modalità di esecuzione usare:
oppure
Per maggiori info vedi Use multiple environments in ASP.NET Core.
Development e production sono gli abienti tipici, ma in realtà se ne possono creare altri se serve.
Per le web application la variabile si chiama ASPNETCORE_ENVIRONMENT, mentre per le console application la variabile si chiama DOTNET_ENVIRONMENT.
ATTENZIONE: se sono presenti entrambi, in una web application var builder = WebApplication.CreateBuilder(), DOTNET_ENVIRONMENT vince.
In una console application var builder = Host.CreateApplicationBuilder(args), viene letta solo DOTNET_ENVIRONMENT, ASPNETCORE_ENVIRONMENT viene ignorata.
In una console application var builder = Host.CreateApplicationBuilder(args), viene letta solo DOTNET_ENVIRONMENT, ASPNETCORE_ENVIRONMENT viene ignorata.
Le variabili ambiente possono condiziona il comportamento del nostro codice, ad esempio la funzionalità di Visual Studio 2022 Manage User Secrets è disabilitata quado si è in ambiente di Production.
In sviluppo, con Visual Studio 2022, si può preimpostare la variabile di ambiante andando nelle proprietà di progetto Debug, oppure agendo sul file JSON Properties/launchSettings.json
JSON: launchSettings.json
{
"profiles": {
"Debug Development": {
"commandName": "Project",
"environmentVariables": {
"DOTNET_ENVIRONMENT": "Development"
}
}
}
}
Debug Development è un etichetta che può cambiare da progetto a progetto.
Per visualizzare via codice la modalità di esecuzione usare:
C#
builder.Environment.EnvironmentName
C#: web app
Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
C#: console app
Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT");
Per maggiori info vedi Use multiple environments in ASP.NET Core.