Вопрос по migration, entity-framework – Включение-миграция консоли диспетчера пакетов CommandNotFoundException только в конкретном проекте VS

103

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

<code>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
</code>

Но во всех других проектах команда работает просто отлично.

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

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

EDIT: Я переустановил с коммандой:Install-Package EntityFramework -IncludePrerelease и проблема ушла.

У меня точно такая же проблема. Но ни одна из вещей в этой теме, кажется, не работает. Вы переустанавливали всю визуальную студию или просто запускали эту команду? ObedMarsh
Здравствуйте, добавьте ваше решение в качестве ответа и пометьте его как принятое (что вы можете сделать через 2 дня), чтобы оно не отображалось как вопрос без ответа. Gert Arnold
Я просто управлял командой ... Eduardo Brites
К сожалению, результаты этой команды для меня просто "EntityFramework 6.1.0". уже установлен. & quot; и он все еще не имеет добавления-миграции или включения-миграции в качестве допустимых команд. Mir
Я получаю Install-Package: Невозможно найти пакет "EntityFramework". когда я попробую ваше решение Naguib Ihab

Ваш Ответ

19   ответов
82

Не нужно устанавливать пакеты и т. Д.

перезапуск VS также работал для меня.
Свежая попытка репо также стала причиной этого для меня. Рестарт исправил. (VS Enterprise 2015, обновление 2).
Перезапуск работал для Visual Studio 2015. Не нужно устанавливать пакеты.
Перезапуск VS также работал для меня, рад, что я попробовал это, прежде чем пытаться переустановить EntityFramework
Примечание. У меня возникает эта проблема каждый раз, когда мне приходится устанавливать свои пакеты (как, например, новый репозиторий). Похоже, что VS должен перезагрузиться, прежде чем PM будет правильно инициализирован с новыми пакетами (VS Community 2015 Update 1)
9

Установить-пакет EntityFramework -IncludePrerelease & quot; а затем перезапустить Visual Studio какAdministrator работал для меня вместе.

-4

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

Не нахожу это правильным ..
70

Install-Package EntityFramework -IncludePrelease, и проблема исчезла.

Перезапуск не сделал это для меня, но это сделал.
@ T & # xE2; nNguy & # xEA; & # x303; n - что это такое? моя EntityFramework 6.1.3 NuGet работает нормально в моем проекте 4.6.x
Это сработало для меня .. спасибо
Я построил свое решение, а затем закрыл и снова открыл VS 2013, и это сработало
Обратите внимание, чтоEntityFramework поддерживает только .net Framework 4.0 и 4.5. Таким образом, если вы используете .net Framework 4.6 или выше, он не работает.
1

я перезапустил Visual Studio и запустил Update-Database -verbose в консоли диспетчера пакетов. Это сработало для меня

0

packages/EntityFramework.6.1.3 а такжеRestore NuGet Packages

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

1

d: PM> Install-Package EntityFramework -IncludePrerelease

Add a class "MyDBContext" in the Model folder as given below:

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

Now enable migrations for the current project with the below command: PM> enable-migrations

2

что исправило этот симптом для меня (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>

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

У меня были проблемы с добавлением-переносом / обновлением-базой данных и т. Д. Я испробовал все количество решений, но, хотя и уверен, что уже пытался удалить и переустановить EF, это не сработало. До сих пор, когда это было. Это не первый раз, когда у меня возникают проблемы с пакетами EF. :(
1

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

шаги:

Install-Package EntityFramework -IncludePrerelease

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

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

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

Enable-Migrations -EnableAutomaticMigrations

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

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

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

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

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

/* The term 'enable-migration' 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, verify that the path is correct and try again.At line:1 char:1 + enable-migration + ~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (enable-migration:String) [], CommandNotFoundException */

0

но у меня был правильный набор Default Project, поэтому я подумал, что он должен работать.

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

0

существует и описана в вашем файле .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>
3

et (Инструменты> Расширения и обновления> Установлено> Все: Диспетчер пакетов NuGet: кнопка Удалить). Затем закрыли Visual Studio. Затем снова открыл Visual Studio и переустановил NuGet (Инструменты & gt; Расширения и обновления> Онлайн> Галерея Visual Studio: Диспетчер пакетов NuGet: кнопка Загрузить). Затем в следующих окнах: нажмите кнопку «Установить», затем нажмите кнопку «Закрыть». Затем закройте и снова откройте Visual Studio.

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

.Net Core и EntityFramework Core.

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

1

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

1

Enable-Migrations -EnableAutomaticMigrations

После того, как вы попробуете несколько решений, ваше решение будет хорошо работать для меня.
Работал для меня в Visual Studio Community 2015. Спасибо (все остальные решения не помогли в моем случае)
я пытаюсь, и это не работает
16

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

Install-Package EntityFramework -IncludePrerelease

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

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

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

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

No context type was found in the assembly

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

enable-migrations
Работал на меня. Благодарю.
2

которое описано в принятом ответе, введя следующее в консоли диспетчера пакетов:

Install-Package EntityFramework.Core -Pre
1

но у меня ничего не получилось, тогда я обновилNuget Package Manager и это сработало ..

16

administrator привилегия решила проблему для меня.

Похожие вопросы