Консоль менеджера пакетов Enable-Migrations CommandNotFoundException только в конкретном проекте VS

Я попытался запустить команду "Enable-Migrations" в новом проекте, и я получил сообщение:

PM> Enable-Migrations
The term 'Enable-Migrations' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<< 
    + CategoryInfo          : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Но во всех других проектах команда выполняется нормально.

Почему это происходит?

Кстати, я использую VS2010 Professional SP1

РЕДАКТИРОВАТЬ: Я переустановил с помощью commmand: Install-Package EntityFramework -IncludePrerelease и проблема исчезла.

Ответ 1

Я переустановил с помощью commmand: Install-Package EntityFramework -IncludePrerelease и проблема исчезла.

Ответ 2

Просто для начала Visual Studio работал у меня. Нет необходимости устанавливать пакеты и т.д.

Ответ 3

Эта проблема возникает, потому что у нас не установлен Entity Framework. Пожалуйста, установите Entity Framework, используя приведенную ниже команду.

Install-Package EntityFramework -IncludePrerelease

После установки выберите проект в раскрывающемся списке проектов по умолчанию консоли консоли менеджера пакетов.

Убедитесь, что хотя бы один класс в вашем проекте наследуется от контекста данных, в противном случае используйте следующий класс:

public class MyDbContext : DbContext
    {
        public MyDbContext()
        {
        }
    }

Если мы этого не сделаем, мы получим еще одну ошибку:

No context type was found in the assembly

После завершения этих вещей вы можете запустить

enable-migrations

Ответ 4

Перезапуск Visual Studio с привилегией администратора решила проблему для меня.

Ответ 5

Запустите Visual Studio в качестве администратора.

Ответ 6

Сначала "Install-Package EntityFramework -IncludePrerelease", а затем перезагрузка Visual Studio в качестве администратора работала для меня вместе.

Ответ 7

У меня была такая же проблема с VS 2019 Preview,.Net Core и EntityFramework Core.

Оказывается, мне пришлось установить через NuGet Microsoft.EntityFrameworkCore.Tools и Microsoft.EntityFrameworkCore.Design. Как только это было сделано, это работало как очарование.

Ответ 8

В Visual Studio 2012 у меня была такая же ошибка. Придется удалить NuGet (Tools > Extensions and Updates > Installed > All: NuGet Package Manager: кнопка удаления). Затем закрыта Visual Studio. Затем повторно открыли Visual Studio и переустановили NuGet (Инструменты > Расширения и Обновления > Онлайн > Галерея Visual Studio: Диспетчер пакетов NuGet: Кнопка загрузки). Затем в следующих окнах: нажмите кнопку "Установить", затем нажмите кнопку "Закрыть". Затем закройте и снова откройте Visual Studio.

Ответ 9

Что фиксировал этот симптом для меня (VS2013), это удаление, а затем переустановка пакета EF с помощью Nuget. Разница в файле csproj изменила это...

<Reference Include="EntityFramework">
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

... в это...

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

Я пока не понимаю, почему, но это сработало как минимум.

Ответ 10

В .NET Core я смог достичь того же разрешения, что и в принятом ответе, введя следующее в консоли диспетчера пакетов:

Install-Package EntityFramework.Core -Pre

Ответ 11

У меня была та же проблема, и я попробовал большую часть решения, предоставленного другими людьми, но он работал для меня с шагами ниже. У меня есть VS 2017.

шаги:

Install-Package EntityFramework -IncludePrerelease

затем создайте класс как

public class MyDBContext : DbContext { public MyDBContext() { } }

и в последний раз выполнить

Enable-Migrations -EnableAutomaticMigrations

Что не сработало для меня:

: Перезапуск VS.

: только команда "Enable-Migrations", которая без -EnableAutomaticMigrations.

: восстановление или обновление диспетчера пакетов Nuget.

Моя первоначальная ошибка в начале была

/* Термин "разрешить миграцию" не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и попробуйте снова. В строке: 1 символ: 1 + enable -igration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable -igration: String) [], CommandNotFoundException */

Ответ 12

У меня была та же проблема, и я обнаружил, что это связано с некоторыми символами в пути к проекту, например [или] Я исправляю путь проекта, и он отлично работает!

Ответ 13

Enable-Migrations -EnableAutomaticMigrations

Ответ 14

Поскольку у меня уже была папка с миграциями, я перезапустил Visual Studio и запустил Обновить-База данных -verbose в консоли диспетчера пакетов. Это сработало для меня

Ответ 15

Я пробовал все вышеперечисленные предложения, но ничего не работал у меня, а затем обновил Nuget Package Manager, и он сработал.

Ответ 16

  1. Установите платформу Entity в текущий проект с помощью следующей команды: PM> Install-Package EntityFramework -IncludePrerelease

  2. Добавьте класс "MyDBContext" в папку "Модель", как показано ниже:

    открытый класс MyDBContext: DbContext {открытый MyDBContext() {}}

  3. Теперь включите миграции для текущего проекта с помощью следующей команды: PM> enable-migrations

Ответ 17

В VS 2013 попытайтесь установить UPDATE 1 (RC1), и проблема будет решена.

Ответ 18

У меня было несколько проектов в решении, но у меня был правильный набор по умолчанию, поэтому я подумал, что он должен работать.

В конце концов, мне пришлось добавить параметр -StartupProject MyProjectName в команду

Ответ 19

Ни один из этих решений не работал у меня. Моим решением было удалить packages/EntityFramework.6.1.3 и Restore NuGet Packages

Я заметил, что packages/EntityFramework.6.1.3/tools/EntityFramework.psd1 отсутствует, так что это была вероятная причина. Как его удалили в первую очередь, хотя я понятия не имею.

Ответ 20

Проверьте, существует ли раздел конфигурации "entityFramework" в файле .config

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>

        <entityFramework>
            <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
            <providers>
                <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
            </providers>
        </entityFramework>

Ответ 21

запустить от имени администратора vs =>> открыть опнепроект

enabele-migration
add-migration migrationName
update-database

Ответ 22

Проверьте версию Entity Framework.

если это 6.3, понизьте его до 6.2, и он должен работать просто отлично

Ответ 23

Я использую VS2019, ничего из вышеперечисленного не работает! Это проблема самого 2019 года? Если кто-то сталкивался с этим и имеет решение, пожалуйста, поделитесь!

Ответ 24

Проверьте, открыт ли проект в окне Solution Explorer.

Это может быть причиной вашей проблемы.