Термин "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"
Ответ 14
Восстановление пакета NuGet не помогло мне. Поэтому мне пришлось переустановить диспетчер пакетов - https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca
Может быть, это помогает кому-то
Ответ 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, а затем все начали работать.