Термин "Update-Database" не распознается как имя командлета

Я использую EF5 beta1, и пока я смог запустить "Update-Database" раньше. Теперь, когда я закрыл Visual Studio, я не могу заставить его работать. Я получаю следующую ошибку:

Термин "Обновление-База данных" не распознается как имя командлета, функции, файла script или исполняемой программы. Проверьте правильность написания имени или, если включен путь, проверьте правильность пути и повторите попытку. На линии: 1 char: 16 + Update-Database < < -подробный     + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException     + FullyQualifiedErrorId: CommandNotFoundException

Я попытался переустановить EF5b1, и пока он был успешно (уже установлен), "Обновление-База данных" по-прежнему не работает.

Может ли кто-нибудь помочь?

Ответ 1

У меня была эта проблема несколько раз в последнее время. Я нашел решение, которое работало, заключалось в том, чтобы закрыть консоль диспетчера пакетов, закрыть Visual Studio и затем снова открыть их. Перезагрузка также работала большую часть времени, но не всегда.

Ответ 2

Если вы используете Entity Framework:

Сообщение об ошибке: "Сообщение об ошибке (из команды" Обновление базы данных "в PMC): термин" Обновление базы данных "не распознается как имя командлета, функции, файла сценария или работоспособной программы. Проверьте правильность написания имени или, если путь был указан, убедитесь, что он правильный, и повторите попытку. "

Решение: "Выйдите из Visual Studio. Откройте проект и попробуйте снова".

Для получения дополнительной информации посетите: Advanced Entity Framework 6 Сценарии для веб-приложения MVC 5 (12 из 12)

Надеюсь это поможет...

Ответ 3

Иногда, когда я загружаю VS, я вижу это в консоли менеджера пакетов:

Значение не может быть нулевым.

Имя параметра: путь1

Я понятия не имею, что это за причины, но кажется, что что-то пошло не так во время запуска консоли Powershell, которая прерывает регистрацию определенных модулей, таких как расширения PowerShell EF. Вы можете просто загрузить его вручную:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

Убедитесь, что вы заменили 6.1.1 любой текущей версией Entity Framework.

Ответ 4

Переустановка пакета nuget исправила эту проблему для меня

т.е. выполнить

Install-Package EntityFramework -Version 5.0.0

в диспетчере пакетов

Ответ 5

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

Ответ 6

вы получите эту ошибку, если инструменты EF не установлены должным образом.

попробуйте выполнить команду ниже в диспетчере пакетов Nuget // Уничтожает и устанавливает ту же версию EF

Update-Package "EntityFramework" -reinstall

Если вы все еще сталкиваетесь с той же проблемой.  создайте новый веб-проект и выполните следующую команду в nuget.

(Примечание: нет необходимости создавать новый проект в том же решении или то же место.)

//Это обновит EF до последней версии (включая инструменты)  // если вы хотите использовать определенную версию, используйте флаг -version.

Update-Package "EntityFramework"

Как только это будет сделано, chcek ваш исходный проект, и вы можете удалить вновь созданный проект.

Ответ 7

У меня была такая же проблема, и происхождение ее было по моему имени пути, у меня на моем пути было имя каталога с прямыми скобками, например: C:\[PROJ]\TestApp.

Когда я удалил скобки, до C:\PROJ\TestApp, он начал работать нормально...

Ответ 8

Просто визуальная студия REOpen работает для меня

Ответ 9

Для меня проблема была в версии Nuget.

  • удалить диспетчер пакетов Nuget.
  • перезапустить Visual Studio.
  • установлена ​​новая версия диспетчера пакетов Nuget.
  • затем снова запустите Visual Studio.

Ответ 10

Эта проблема возникает, когда вы открываете проект непосредственно из Проводника. Сначала попробуйте запустить VS, а затем открыть проект - работал у меня. Я предполагаю, что это касается доступа к путям.

Ответ 11

Я решил с помощью удаления и переустановки "Microsoft.EntityFrameworkCore" и "Microsoft.EntityFrameworkCore.Tools"

Ответ 12

Для тех, кто использует .Net Core и EntityFrameworkCore:

Вам нужно будет установить пакет Microsoft.EntityFrameworkCore.Tools для решения этой проблемы.

Подробнее читайте здесь: https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

Ответ 13

В моем случае я сделал следующее: - восстановили отсутствующие пакеты NuGet, нажав кнопку "Восстановить" поверх консоли диспетчера пакетов - перезапущена Visual Studio - запустить "update-databse"

Ответ 15

Если другие ответы не работают (VS 2017): очистите кеш NuGet, перезапустите VS, затем восстановите пакеты.

Ответ 16

Я обнаружил, что это произошло из-за поврежденного пакета. Я установил Automapper, когда он уже был установлен. Было ясно только, что этот пакет был поврежден, когда я попытался установить другой пакет.

Удаление поврежденного пакета решило эту проблему для меня.

Затем вы можете переустановить automapper. Проблема была в версии 5.4, теперь я счастлив в 6.0.

Ответ 17

Для меня оказывается, что ядро ​​EntityFramework не было установлено в моем проекте (потому что я начал с пустого проекта). Поэтому установка пакета EntityFramework решила проблему. Иногда, если установка EntityFramework не удалась, попробуйте установить отдельные пакеты по одному

например.

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

Ответ 18

Я решил, обновив консоль диспетчера пакетов.

Я не получал Update-Database в консоли диспетчера пакетов. Затем я перезапускаю несколько раз. Также перезапустите Windows.

Затем я загружаю новый из nuget, после чего он был решен.

Ответ 19

У меня была эта проблема в Visual Studio 2015, и я решил ее, обновив версию Nuget.

Сервис → Расширения и обновления → Обновления → Галерея Visual Studio

Ответ 20

Простым решением для меня было убедиться, что между обновлением и базой данных есть черта, например: update-database и использовать строчные буквы. Это может быть случайным, но когда я сделал это в консоли диспетчера пакетов, база данных фактически обновилась, и я получил сообщение о готовности, а не not recognized as the name of a cmdlet, function, script file ошибки not recognized as the name of a cmdlet, function, script file.

Ответ 21

У меня возникла та же проблема после того, как я случайно открыл решение Visual Studio с Visual Studio 2015 вместо 2017 года. До этого неудачного прохождения проект работал нормально. Это был старый проект с EF 5.0, а не EF Core.

Я попробовал все предложенное - перезапускал Visual Studio бесчисленное количество раз, очищал кеш NuGet, удалял все в папке пакетов, переустанавливал EF 5 для проекта - ничего хорошего, добавление-миграция не была распознана. Если я обновил EF до 6, он начал распознавать команды, но я пока не хотел обновляться. Итак, как только я вернулся к EF 5, проблема вернулась.

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

  • закрыть Visual Studio
  • удалить все из папки с пакетами
  • удалите папку .vs в корне вашего решения. Эта папка обычно скрыта, необходимо включить параметр "Показать скрытые файлы и папки" или установить флажок "Скрытые элементы в папке".
  • запустите Visual Studio и откройте свое решение. Он попросит восстановить пакеты NuGet, согласитесь на это.

Теперь команды EF наконец начали работать снова.

Ответ 22

В моем случае:

  • Перезагрузка проекта не помогла
  • Перезапуск VS не помог
  • Перезагрузка компьютера не помогла
  • Переустановка EF не помогла

Но я нашел статью, в которой предлагалось вручную импортировать отсутствующий пакет EF с помощью PM Conole:

Import-Module.\packages\EntityFramework.XXX\tools\EntityFramework.psm1

И это решение решило мою проблему.

Ответ 23

В моем случае перезапуск Visual Studio (много-много раз) не работал, тогда, как я искал в другом месте, я обнаружил сообщение на выходном терминале:

Текущий .NET SDK не поддерживает таргетинг на .NET Core 2.2. Или предназначайтесь для .NET Core 2.1 или ниже, или используйте версию .NET SDK, которая поддерживает .NET Core 2.2.

Поэтому я установил требуемую версию .NET Core, и команда была успешно выполнена.

Ответ 24

Для меня проблема была в версии Nuget.

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