Visual Studio принудительно устанавливает значение ASPNETCORE_ENVIRONMENT - PullRequest
0 голосов
/ 08 июля 2020

Я пытаюсь использовать консоль диспетчера пакетов с EF Core 2.2 в Visual Studio 2019 для выполнения команды Update-Database. Я нацелен на конкретную базу данных c в моем коде, изменив строку подключения на основе значения ASPNETCORE_ENVIRONMENT. Код достигает этого, используя

public Startup(IHostinEnvironment env) {
    if (env.IsDevelopment()) {
        // set EF Core Dev connection string here
    }
}

. В свойствах проекта на панели «Отладка» у меня установлено значение «Разработка», и, поскольку диспетчер пакетов Cosole игнорирует это и использует переменную среды, я набрал

PM> $ Env: ASPNETCORE_ENVIRONMENT = "Development"

Затем я проверяю его правильность, набрав

PM> $ Env: ASPNETCORE_ENVIRONMENT

И он правильно возвращает Разработка .

Но проблема в том, если я затем запускаю

PM> Get-DbContext

Он нацелен на мою производственную базу данных, а не на разработку, и действительно, когда снова набирает $ Env: ASPNETCORE_ENVIRONMENT, он дает Production !

В моем коде нет ничего, что изменит это значение на лету. Еще больше сбивает с толку тот факт, что в прошлом я без проблем предпринимал именно эти шаги.

Мы приветствуем любые идеи по устранению неполадок.

1 Ответ

0 голосов
/ 08 июля 2020

Я пришел к неудовлетворительному выводу, что простой перезапуск Visual Studio 2019 устранил проблему. Я предполагаю, что в нем или в консоли PM есть какая-то ошибка.

Просто для справки, я использую версию 16.6.3 на Windows 10 Pro. Хост диспетчера пакетов 5.6.0.6591

...