Имя add migration не распознано как имя командлета функции файла

Обновлено: 05.07.2024

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

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

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

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

Привет, добавьте свое решение в качестве ответа и отметьте его как принятое (что можно сделать через 2 дня), чтобы оно не отображалось как вопрос без ответа. У меня точно такая же проблема. Но, похоже, ничего из этого не работает. Вы переустановили всю визуальную студию или просто выполнили эту команду? К сожалению, результаты этой команды для меня просто «EntityFramework 6.1.0 уже установлен». и в нем по-прежнему нет допустимых команд add-migration или enable-migrations. Я получаю Install-Package: Невозможно найти пакет EntityFramework. когда я попробую ваше решение

Просто перезапустить Visual Studio сработало. Не нужно устанавливать пакеты и т. Д.

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

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

Я построил свое решение, а затем закрыл и снова открыл VS 2013, и оно сработало @ TânNguyễn - что это? мой EntityFramework 6.1.3 NuGet работает нормально в моем проекте

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

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

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

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

No context type was found in the assembly

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

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

Убедитесь, что вы используете Visual Studio от имени администратора.

Я запускал VS как администратор. В то время я не знал, что нам нужно устанавливать пакет для каждого проекта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

/ * Термин 'enable-migration' не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был указан путь, убедитесь, что путь правильный, и повторите попытку. В строке: 1 символ: 1 + enable-migration +

+ CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /

add-migration: термин "add-migration" не распознается как имя командлета, функции, файла сценария или исполняемой программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку.

enter image description here

Это не совсем то, что имеет OP, но, по крайней мере, для ядра dotnet, это также может быть вызвано не установкой Microsoft.EntityFrameworkCore.Tools nuget Microsoft.EntityFrameworkCore.Tools , который используется для команд диспетчера пакетов в Visual Studio и команде линия.

Что я должен был сделать.

1) Инструменты → Nuget Package Manger → Настройки диспетчера пакетов

2) Вкладка "Общие"

3) Очистить все кеши NuGet

4) Перезапустить Visual Studio

ответил(а) 2017-09-03T00:47:00+03:00 4 года, 2 месяца назад

У меня была такая же проблема, и я просто закрыл консоль диспетчера пакетов, а затем перезапустил Visual Studio.

ответил(а) 2017-09-11T03:36:00+03:00 4 года, 2 месяца назад

Я подозреваю, что ваш проект по умолчанию должен быть установлен, как упоминал Кирк Ларкин в комментариях. Нажмите раскрывающийся список в проекте по умолчанию и установите его, на который когда-либо был установлен проект.

enter image description here

Также эта ссылка может помочь, если выпадающий список невыполненных проектов по умолчанию не будет заполнен. Выпадающий список Project Project Console по умолчанию для NuGet пуст

Надеюсь это поможет! Если не дайте мне знать, и я удалю ответ (я должен был использовать ответ, потому что не могу прокомментировать 50 репутации) Приветствия!

В консоли nuget проверьте, выбран ли выбранный проект по умолчанию. Задайте этот проект как проект запуска

add-migration: термин «add-migration» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку.

введите описание изображения здесь

Я подозреваю, что раскрывающийся список «Проект по умолчанию:» пуст. Он должен быть включен, пока у вас открыт проект, поэтому попробуйте выбрать проект с вашим материалом EF оттуда, а затем снова запустить Add-Migration . – Kirk Larkin 22/11/2021

Спасибо, Кирк, что обратились к вам. После просмотра проекта по умолчанию в раскрывающемся списке он пуст, хотя мой проект открыт, что отображается в проводнике решений . Итак, в основном в проекте по умолчанию ничего не выбрано. – Richard Jimenez 22/11/2021

Это не совсем проблема, с которой сталкивается OP, но, по крайней мере, для ядра dotnet это также может быть вызвано отсутствием установленного пакета Nuget Microsoft.EntityFrameworkCore.Tools , который используется для команд диспетчера пакетов в Visual Studio и командной строки.

после установки "Microsoft.EntityFrameworkCore.Tools" мне пришлось перезапустить Visual Studio, и все заработало – Ezra 18/11/2017

Что мне нужно было сделать .

1) Инструменты -> Диспетчер пакетов Nuget -> Настройки диспетчера пакетов

2) Вкладка Общие

3) Очистить все кеши NuGet

4) Перезапустите Visual Studio.

У меня была такая же проблема, и простое закрытие консоли диспетчера пакетов с последующим перезапуском Visual Studio исправило ее.

Я подозреваю, что ваш проект по умолчанию должен быть установлен, как упомянул Кирк Ларкин в комментариях. Щелкните раскрывающийся список проекта по умолчанию и укажите, в каком проекте у вас установлена ​​платформа entity framework.

введите описание изображения здесь

Также эта ссылка может помочь, если раскрывающийся список вашего проекта по умолчанию не заполняет консоль NuGet Package Manager. Раскрывающийся список проекта по умолчанию пуст.

Надеюсь это поможет! Если нет, дайте мне знать, и я удалю ответ (мне пришлось использовать ответ, потому что я не могу комментировать менее 50 повторений) Ура!

Вы можете объяснить этот код? add-migration "Locations" -StartupProjectName "ProjectA" -ProjectName "ProjectB" – Richard Jimenez 10/08/2017

На самом деле это не код для начала, это команда для добавления миграции вручную. Таким образом, вы должны ввести это в консоль диспетчера пакетов. «Местоположения» - это место, где живет проект, «StartupProjectName» - это проект, который вы хотите использовать в качестве своего запускаемого проекта, а затем просто перечислите проекты, из которых вы хотите получить изменения. Извините, если это не очень понятно. У меня никогда не было этой проблемы с entity framework, поэтому мне никогда не приходилось использовать эту ручную команду. Еще одна вещь, о которой не упоминалось, - это попытаться сохранить все, перезапустив Visual Studio, и если это не сработает, попробуйте перезагрузить весь компьютер. – Chase 10/08/2017

Также не забудьте принять ответ, если это решит вашу проблему, чтобы он не оставался без ответа при поиске вопросов. – Chase 10/08/2017

Итак, для определения местоположения мне нужно будет уточнить рабочий стол c диска и т. Д.? или просто название папки, в которой живет проект? В моем случае это папка Projects в моих документах. Имя проекта - GigHub внутри проектов. Я все еще не смущаюсь, извините, кстати. – Richard Jimenez 10/08/2017

после запуска его все еще говорят, что добавление-миграция не распознается. Термин «добавление-миграция» не распознается как имя командлета, функции, файла сценария или работающей программы. Проверьте написание имени или, если был включен путь, убедитесь, что путь правильный, и повторите попытку. – Richard Jimenez 10/08/2017

Если добавление-миграция не распознается, я бы попробовал перезапустить Visual Studio или любую другую IDE, которую вы используете. В остальном я бы предположил, что «Местоположение» - это относительный путь, по которому находится решение. Также убедитесь, что у вас правильно установлена ​​entity framework, и попробуйте команду PMC update-packages -reinstall, которая обновит и перезапишет старые пакеты. – Chase 10/08/2017

В Visual Studio 2019 (предварительная версия для предприятий) у меня такая же проблема. Я несколько раз перезапускал Visual Studio, обновил ее до последней версии 3.0, а также установил Visual Studio 2019 Enterprise и 2017 Enterprise. Ни одно из решений в этих комментариях, ни сам ответ не решают эту проблему. Я на самом деле получаю репо с github с примерно 250 звездами и 100 форками (от Microsoft PM)! – DL Narasimhan 10/08/2017

Что именно вы вводите в консоль, потому что это не проблема репозиториев или GitHub. Речь идет о проблеме с добавлением-миграцией, не работающей для проектов, использующих структуру сущностей. – Chase 10/08/2017

Если вы столкнулись с этой проблемой в Visual Studio для Mac, просто переустановите расширение консоли Nuget Package Manager . Это решит вашу проблему

Хорошо, также мы получаем ту же ошибку при «добавлении-миграции», я пробую одно решение, которое является обновлением диспетчера пакетов, используя следующий шаг

  1. В Visual Studio в меню «Инструменты» выберите вариант «Расширения и обновления».
  2. В появившемся диалоговом окне разверните узел «Обновления» в дереве слева.
  3. Выберите в дереве опцию «Visual Studio Gallery».
  4. Наконец, найдите обновление диспетчера пакетов в списке обновлений в правой части диалогового окна и нажмите кнопку «Обновить» рядом с ним.

это примерно 5-10 МБ обновления, после завершения обновления попробуйте Get-Help Add-Migration

Я переустановил диспетчер пакетов Nuget, и он сработал для меня. Сначала я удалил предыдущую версию 2.0.x, затем установил версию 2.8.x


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

Я включил миграции и использую Code First. Когда я запускаю командлет , независимо от того, указан ли параметр или нет, я получаю эту ошибку:

Я дважды и трижды проверил, и в моей модели, как и в таблице, есть только один столбец с таким именем. Этот столбец уже был создан при предыдущем запуске командлета совсем недавно.

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

Я использую Entity Framework v6.1.2.

Как мне избавиться от этой ошибки?

  • Возможно, EF считает, что предыдущая миграция не применяется, и пытается ее повторно применить? Попробуйте "update-database -verbose", чтобы узнать, какие миграции он пытается применить.
  • Я забыл упомянуть, я всегда делаю . Он пытается воссоздать этот столбец снова, и я не знаю почему.
  • Отличная привычка :) Это пытается применить старую миграцию, или ваша последняя миграция пытается создать столбец?
  • Мне никогда не везло с миграциями сначала кода. Инициализатор базы данных, кажется, делает это регулярно (вызывая ошибки при запуске приложения). Я действительно хочу сначала использовать код, особенно с точки зрения управления версиями . но мне это не очень повезло. А с множеством контекстов команды просто смешны. Data First кажется намного проще по сравнению.

Выполните команду с флагом . Затем снова запустите .

-Обновить-

Эти команды следует запускать в консоли диспетчера пакетов. В главном меню: Инструменты-> Диспетчер пакетов NuGet -> Консоль диспетчера пакетов.

Add-Migration -IgnoreChanges поскольку это сработало для меня, но все равно вызывало больше ошибок.

Если вы также добавили эти свойства в таблицы базы данных, вы по-прежнему будете получать эти ошибки. Поэтому мне пришлось удалить свойства из моей собственной таблицы, чтобы добиться повторного построения и впоследствии обновить базу данных. Так беги Добавить-миграцию после того, как вы должны удалить свойства и получить удовлетворительный результат, запустите Обновление базы данных также ожидается, что он будет удовлетворительным.

Это сработало для меня.

Читайте также: