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


122

Я спробував запустити команду '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

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


2
Привіт, будь ласка, додайте своє рішення як відповідь та позначте його як прийняте (що ви можете зробити через 2 дні), тому воно не відображатиметься як питання без відповіді.
Герт Арнольд

1
У мене це саме таке питання. Але жодна річ у цій темі, здається, не працює. Ви перевстановили всю візуальну студію чи просто виконали цю команду?
ObedMarsh

Я просто керував командою ...
Едуардо Брітс,

2
На жаль, результати цієї команди для мене просто "'EntityFramework 6.1.0' вже встановлений." і він як і раніше не містить додавання-міграцію чи включення-міграцію як дійсні команди.
Мир

Я отримую Install-Package: Не вдається знайти пакет "EntityFramework". коли я спробую ваше рішення
Naguib Ihab

Відповіді:


85

Просто просто перезапуск Visual Studio працював на мене. Не потрібно встановлювати пакети тощо.


8
Перезапуск VS також працював на мене, радий, що я спробував це, перш ніж спробувати перевстановити EntityFramework
SM3RKY

5
Перезапуск працював для Visual Studio 2015. Не потрібно встановлювати пакети.
jonas

5
Примітка - у мене виникає ця проблема щоразу, коли мені доводиться встановлювати свої пакунки (як-от свіжий репо-ривок). Схоже, VS потрібно перезапустити до того, як PM буде ініціалізовано належним чином з новими пакетами (VS Community 2015 Update 1)
Jono

2
Свіжий репо тяг також спричинив це для мене. Перезапуск виправлено. (Оновлення 2 для VS Enterprise 2015).
Майк Руус

84

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


13
Я створив своє рішення, а потім закрив і знову відкрив VS 2013, і воно спрацювало
Лука

Зауважте, що EntityFrameworkпідтримується лише .net Framework 4.0 і 4.5. Отже, якщо ви використовуєте .net Framework 4.6 або вище, він не працює.
Tân

1
@ TânNguyễn - що це? мій EntityFramework 6.1.3 NuGet прекрасно працює в моєму проекті 4.6.x
bkwdesign

Перезапуск не зробив це для мене, але це зробило.
robbpriestley

29

Ця проблема виникає, оскільки у нас не встановлено Entity Framework. Установіть Entity Framework за допомогою команди нижче.

Install-Package EntityFramework -IncludePrerelease

Після встановлення виберіть проект у спадному меню консолі керування пакунками пакета.

Переконайтеся, що принаймні один клас у вашому проекті успадковується від контексту даних, інакше використовуйте клас нижче:

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

Якщо ми цього не зробимо, ми отримаємо ще одну помилку:

No context type was found in the assembly

Виконавши ці речі, можна запуститись

enable-migrations

Працювали для мене. Дякую.
Najeeb

Працював для мене сьогодні з VS 2019.
perezdr

17

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


13

Переконайтеся, що ви використовуєте Visual Studio як адміністратор.


1
Я працював VS як адміністратор. На той час я не знав, що нам потрібно встановлювати пакет для кожного проекту.
Едуардо Брітс

12

У мене була така ж проблема з VS 2019 Preview, .Net Core та EntityFramework Core.

Виявляється, мені довелося встановити через NuGet Microsoft.EntityFrameworkCore.Toolsі Microsoft.EntityFrameworkCore.Design. Як тільки це було зроблено, це спрацювало як шарм.


10

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


3

У Visual Studio 2012 у мене була така ж помилка. Довелося видалити NuGet (Інструменти> Розширення та оновлення> Встановлено> Усі: NuGet Package Manager: Кнопка "Видалити"). Потім закрили Visual Studio. Потім знову відкрили Visual Studio та перевстановили NuGet (Інструменти> Розширення та оновлення> Інтернет> Галерея Visual Studio: Менеджер пакетів NuGet: кнопка Завантажити). Потім у наступних вікнах: натисніть кнопку Встановити, потім натисніть кнопку закрити. Потім закрийте і знову відкрийте Visual Studio.


Це працювало для мене, я вважаю, що це кращий варіант, ніж примушування до оновлення до попереднього випуску.
OverMars

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. :(
GeoffM

2

У .NET Core мені вдалося досягти тієї ж роздільної здатності, що описана у прийнятій відповіді, ввівши в консоль менеджера пакунків наступне:

Install-Package EntityFramework.Core -Pre

2

У мене була така ж проблема, і я спробував більшість рішень, наданих іншими людьми, але це працювало для мене з наступними кроками. У мене VS 2017.

Кроки:

Install-Package EntityFramework -IncludePrerelease

потім створіть клас як

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

і при останньому виконанні

Enable-Migrations -EnableAutomaticMigrations

Що для мене не вийшло:

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

: лише команда "Увімкнути-міграцію", яка не містить -EnableAutomaticMigrations.

: відновлення або оновлення менеджера пакунків Nuget.

Моя первісна помилка на початку була

/ * Термін "enable-migration" не розпізнається як ім'я командлета, функції, файлу сценарію або керованої програми. Перевірте написання імені, або якщо шлях включено, переконайтеся, що шлях правильний, і спробуйте знову. По рядку: 1 char: 1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /


1

У мене була така ж проблема, і я виявив, що це є через те, що деякі символи в проектному шляху, як [або], я виправляю проектний шлях, і він добре працював!


1

Enable-Migrations -EnableAutomaticMigrations


1
Спробувавши кілька рішень, ваше рішення добре працює для мене.
nguyenhoai890

Працював для мене в Visual Studio Community 2015. Дякую (всі інші рішення не вдалися до мого випадку)
fedeteka

1

Оскільки у мене вже була папка міграцій, я перезапустив Visual Studio і запустив Update-Database -verbose в консолі менеджера пакунків. Це працювало для мене


1

Я спробував усі вищенаведені пропозиції, але нічого не спрацювало для мене, тоді я оновив, Nuget Package Managerі це спрацювало ..


1
  1. Встановіть Entity Framework до поточного проекту за допомогою команди нижче: PM> Install-Package EntityFramework -IncludePrerelease

  2. Додайте клас "MyDBContext" у папку Model, як зазначено нижче:

    публічний клас MyDBContext: DbContext {public MyDBContext () {}}

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


1

запустити як адміністратор vs = >> відкрити Відкрити проект

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database


0

У мене було кілька проектів у рішенні, але у мене був правильний набір проектів за замовчуванням, тому я вважав, що це має спрацювати.

Зрештою, мені довелося додати -StartupProject MyProjectNameпараметр до команди


0

Жодне з цих рішень не працювало на мене. Моє рішення полягало у видаленні packages/EntityFramework.6.1.3таRestore NuGet Packages

Я помітив, що цього packages/EntityFramework.6.1.3/tools/EntityFramework.psd1не вистачає, тому це було ймовірною причиною. Як це видалили в першу чергу, хоча я не маю поняття.


0

Перевірте, чи існує розділ конфігурації "entitFramework" і описаний у вашому файлі .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>

0

Перевірте версію Entity Framework.

якщо це 6,3, зменшіть його до 6,2, і він повинен працювати просто чудово


2
Будь ласка, докладно поясніть це. Чому хтось повинен знизити встановлену версію бібліотеки лише для вирішення цієї проблеми?
andrensairr

0

У мене саме така проблема була в ядрі asp.net VS2019

Це вирішило це:

Install-Package Microsoft.EntityFrameworkCoreInstall-Package
Install-Package Microsoft.EntityFrameworkCore.Tools

Не забудьте встановити проект за замовчуванням у Package Manager Console для проекту вашої бази даних, якщо він відрізняється.

Під час виконання міграцій проект за замовчуванням також відіграє певну роль. На наступному кроці це допомогло встановити це до мого основного запуску проекту (а не проекту бази даних EF):

Install-Package Microsoft.EntityFrameworkCore.Design

Я не думаю, що 8 років тому .net core існує.
AFetter

0

якщо ви створюєте веб-проект MVC, під час створення проекту слід вибрати аутентифікацію. за замовчуванням не вибрано. введіть тут опис зображення


0

пониження до 6.2 допомогло мені.
Версія .NET Framework 4.6.1
Проект у старому форматі (не .NET Standard)
Visual Studio має бути відкритим з правами адміністратора для початкової міграції.
Я думаю, що EF з версією вище 6.2 вимагає останньої .NET Framework.


-4

Перевірте, чи проект відкритий у вікні Провідника рішень.

Це може бути причиною вашої проблеми.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.