Невозможно перечислить миграции Entity Framework в Visual Studio 2019 из-за сбоя dotnet ef dbcontext --json
У меня есть проект ASP.NET Core 3.0, в котором используется.NET Core 3.0. Недавно я обновил VS 2019 до версии 16.4.1.
Я использую Web Publish из Visual Studio для развертывания приложения в различных средах, но это не удалось после обновления из-за миграции EF (не удалось найти контексты db):
dotnet ef dbcontext - сбой json
Запустите "dotnet tool restore", чтобы сделать команду "dotnet-ef" доступной.
Я пытался понять, в чем дело.
dotnet tool restore
Не удается найти файл манифеста. Для получения списка найденных местоположений укажите параметр "-d" перед именем инструмента. Инструменты не восстанавливались.
dotnet tool install --global dotnet-ef
Инструмент dotnet-ef уже установлен.
dotnet tool list
Манифест команд версии идентификатора пакета
(в этом списке нет товаров)
dotnet-ef --version
Инструменты командной строки Entity Framework Core .NET 3.1.0
dotnet --version
3.1.100
Нужно ли мне обновляться, чтобы обновить все до 3.1? Я хотел бы отложить это, если возможно (мне нужно сделать это в нескольких средах, и это запланировано на более позднее время).
Примечание. У меня также есть Visual Studio 2017, и контексты миграции Entity Framework правильно обнаруживаются при настройке профиля публикации.
Вопрос: как решить Не удается перечислить миграции Entity Framework в Visual Studio 2019 из-за сбоя dotnet ef dbcontext --json?
5 ответов
I had the same problem (after an update of visual studio 2019), on my pc there is this problem but in another pc no. The files are all equal (checked via git), VS2019 cache something somewhere and this is bad.
1 Check the default connection string is ok.
2 Check if dotnet ef is installed. In core 3.1 you must install: dotnet tool install -g dotnet-ef
3 Close VS, delete the folder <yourproject>/Properties
(backup it if you want), open VS, clean solution and import the publish file again.
Пробег
dotnet tool uninstall --global dotnet-ef
Пробег
dotnet tool install --global dotnet-ef
Для Linux и macOS добавьте строку в конфигурацию оболочки:
bash / zsh: (
nano ./zshrc
)export PATH="$PATH:$HOME/.dotnet/tools/"
csh / tcsh:
set path = ($path $HOME/.dotnet/tools/)
Источник: /questions/49544635/ne-mozhete-najti-komandu-dotnet-ef/49544647#49544647
Инструмент dotnet ef больше не является частью .NET Core SDK. Это изменение позволяет нам поставлять dotnet ef как обычный инструмент .NET CLI, который можно установить как глобальный или локальный инструмент. Например, для управления миграциями. или создайте шаблон DbContext, установите dotnet ef как глобальный инструмент, введя следующую команду:
$ dotnet tool install --global dotnet-ef --version 3.0.0-preview4.19216.3 Для получения дополнительных сведений см. сведения об этом критическом изменении.
У меня была такая же проблема, но я не знал, что мне нужно записать компакт-диск в "серверный" проект, а затем запустить
dotnet tool restore
. Это решило проблему для меня.
Думаю, я решил это. Мне не хватало Microsoft.EntityFrameworkCore.Design.
- Установлен Microsoft.EntityFrameworkCore.Design 3.0.0 с помощью NuGet
Ран
dotnet tool restore
что было успешно на этот развосстановление инструмента dotnet
Восстановлен инструмент dotnet-ef (версия 3.1.0). Доступные команды: dotnet-ef