Ответ 1
Ваша проблема заключается в пробелах вокруг =
.
Это будет работать:
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT "));
Или удалите пробелы:
set ASPNETCORE_ENVIRONMENT=Production
Запуск моего основного приложения ASP.NET с помощью dnx Мне удалось установить переменные среды из командной строки, а затем запустить его следующим образом:
set ASPNET_ENV = Production
dnx web
Используя тот же подход в 1.0:
set ASPNETCORE_ENVIRONMENT = Production
dotnet run
не работает - приложение, похоже, не может читать переменные среды.
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT"));
возвращает null
Что мне не хватает?
Ваша проблема заключается в пробелах вокруг =
.
Это будет работать:
Console.WriteLine(Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT "));
Или удалите пробелы:
set ASPNETCORE_ENVIRONMENT=Production
Это должен быть комментарий этого @Dmitry (но слишком долго, следовательно, я отправьте его как отдельный ответ):
Вы не хотели бы использовать 'ASPNETCORE_ENVIRONMENT '
(с конечным пространством) - в ядре aspnet есть функции, которые зависят от значения 'ASPNETCORE_ENVIRONMENT'
(без конечного пробела) - например. разрешая appsettings.Development.json
vs appsettings.Production.json
. (например, см. Работа с несколькими документами документации docs
Я также думаю, что если вы хотите остаться чисто внутри парадигмы ядра aspnet, вы бы хотели использовать IHostingEnvironment.Environment
(см. docs) вместо прямого чтения из Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT")
(хотя, конечно же, из последних установлено значение fromer). Например. в Startup.cs
public class Startup
{
//<...>
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
Console.WriteLine("HostingEnvironmentName: '{0}'", env.EnvironmentName);
//<...>
}
//<...>
}