Невозможно перечислить миграции 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.

  1. Установлен Microsoft.EntityFrameworkCore.Design 3.0.0 с помощью NuGet
  2. Ран dotnet tool restore что было успешно на этот раз

    восстановление инструмента dotnet

Восстановлен инструмент dotnet-ef (версия 3.1.0). Доступные команды: dotnet-ef

Другие вопросы по тегам