Термін "Update-Database" не визнається назвою командлету


113

Я використовую EF5 beta1, і раніше я міг запустити "Update-Database". Тепер, коли я вимкнув Visual Studio, я не можу його запустити. Я отримую таку помилку:

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

Я спробував перевстановити EF5b1, і хоча він був успішним (вже встановлений), 'Update-Database' все ще не працює.

Хто-небудь може допомогти ???


3
Вчора у мене була подібна проблема з іншим командлетом, і повний перезапуск системи допоміг ...
nemesv

11
Перезавантажувати не потрібно. Ми не запускаємо скрипти init.ps1 після відновлення пакету (тому команду не знайдено). Просто вийдіть і перезапустіть VS (або вивантажте / перезавантажте проект).
RickAndMSFT

1
У мене таке трапилося сьогодні. Я відкрив репо для командного проекту, і йому потрібно було відновити деякі пакети. Після відновлення команди update-databaseта add-migrationкоманди не працюватимуть. Перезапуск Visual Studio виправила це.
jmbertucci

Відповіді:


169

Останнім часом у мене виникає ця проблема. Я знайшов рішення, яке працювало - закрити консоль менеджера пакунків, закрити Visual Studio і знову відкрити їх. Перезавантаження також працювало більшу частину часу, але не завжди.


7
Зазвичай вам просто потрібно вийти з перезавантаження VS. Дивіться мої коментарі в оригінальному запитанні. У рідкісних випадках вам може знадобитися вийти / перезапустити VS двічі.
RickAndMSFT

1
Просто зіткнувся з проблемою і перезапустив Visual Studio, і все знову працювало. Дякую.
Шуб

Дякую, за ефективне, якщо не шалене рішення. Здається, це все, що працює з мільйона речей, які я спробував.
ПрофК

1
Так, звісно. Це рішення. Легіт-рішення. Дякую Microsoft!
Khateeb321

2
Я встановив "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" на своїх проектах даних та "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" на своєму головному веб-проекті, що вирішило проблему для мене.
HaBo

51

Якщо ви використовуєте Entity Framework:

Повідомлення про помилку: "Повідомлення про помилку (з команди Update-Database в PMC): Термін" Update-Database "не розпізнається як ім'я командлета, функції, файлу сценарію чи функціонуючої програми. Перевірте написання імені або якщо шлях був включений, переконайтеся, що шлях правильний, і спробуйте знову. "

Рішення: "Вийдіть із Visual Studio. Відкрийте проект і повторіть спробу."

Для отримання додаткової інформації відвідайте: Advanced Entity Framework 6 Scenarios для веб-додатку MVC 5 (12 з 12)

Сподіваюся, це допомагає ...


@AlbatrossCafe Sure :)
Murat Yıldız

1
Команда розробників VS повинна надати кнопку Refresh VS для таких питань :)
sohaib javed

@sohaibjaved Для деяких проблем перезавантаження VS було б недостатньо, і потрібне деяке очищення каталогів, як зазначено в Visual Studio 2015 вкрай повільно . FYI ...
Murat Yıldız

Я втратив підрахунок того, скільки речей вирішується, перезапустивши візуальну студію
EKanadily

21

Іноді, коли я завантажую VS, я бачу це на консолі менеджера пакунків:

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

Назва параметра: path1

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

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

Переконайтесь, що ви замінюєте 6.1.1 будь-якою вашою поточною версією Entity Framework.


4
Дякую! Єдине рішення, яке працювало на мене. Однак, для тих , хто з допомогою EF 6.1.3 з VS 2015 є помилка в EntityFramework.psm1 і є патч доступний тут stackoverflow.com/a/30062684/1267778 .
парламент

18

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

тобто виконати

Install-Package EntityFramework -Version 5.0.0

в менеджері пакунків


1
Це працює для мене. Проект, над яким я працював, використовував EF, і я автоматично припускаю, що пакет був встановлений. Виявилося, це не було. Розробник просто посилався безпосередньо на EF dll. Пакет EntityFramework повинен бути встановлений у проекті для роботи cmd Update-Database.
stack247

Ця відповідь, здається, навряд чи допоможе, але це врятувало мені день. Дякую,
Нельсон Міранда

Боротьба з FK сьогодні використовує Fluent API тощо, і якимось чином EntityFramework продовжує випадати. Те, що насправді працювало для мене, було зробити ще одне Update-Package -Reinstall EntityFramework.
Метт Борха

для мене перевстановлення та перезавантаження. просто перевстановіть не працюйте, а просто перезавантажте не працюйте також)
RMazitov

9

Ви отримаєте цю помилку, коли інструменти EF не встановлені належним чином.

спробуйте команду нижче в диспетчері пакунків Nuget // Видалення та встановлення тієї самої версії EF

Update-Package "EntityFramework" -reinstall

Якщо ви все ще стикаєтеся з тим же питанням. створіть новий веб-проект і запустіть команду нижче в nuget.

(Примітка. Не потрібно створювати новий Проект у тому ж самому рішенні чи в тому самому місці.)

// Це оновить EF до останньої версії (включаючи інструменти) // якщо ви хочете використовувати конкретну версію, використовуйте -versionпрапор.

Update-Package "EntityFramework"

Як тільки це буде зроблено, chcek ваш оригінальний проект, і ви можете видалити новостворений проект.


Так!! Спасибі =) У мене встановлені лише EntityFramwork, EF.Design, EF.SqlServer та EF.SqlServer.Design.
Janneman96



4

У мене була ця сама проблема, і походження її було в моєму імені шляху, я мав на своєму шляху ім'я каталогу з прямими дужками, як це: C:\[PROJ]\TestApp .

Коли я зняв дужки C:\PROJ\TestApp, він почав працювати чудово ...


Зазвичай вам просто потрібно вийти з перезавантаження VS. Дивіться мої коментарі в оригінальному запитанні.
RickAndMSFT

@RickAndMSFT Це набагато ближче до кращого рішення, яке "просто" перезапустить VS.
ПрофК

@Antonio Навіть у мене була така ж проблема, і ваше рішення працювало і на мене.
Користувач5590,


4

Для мене проблемою була версія Nuget .

  1. видаліть Nuget Package Manager.
  2. перезапустити Visual Studio.
  3. встановлена ​​нова версія Nuget Package Manager.
  4. потім знову запустити Visual Studio.

1
Так було і для мене, але мені просто потрібно було оновити nuget у розширеннях та оновленнях
Oak

це працювало для мене, видалений менеджер пакетів Nuget, перевстановлений диспетчер пакунків, перезапущена візуальна студія, вилучена EntityFramework, перевстановлена ​​EntityFramework
Rizan Zaky

3

Я вирішив видалення та перевстановлення "Microsoft.EntityFrameworkCore" та "Microsoft.EntityFrameworkCore.Tools"


1
Якщо ви використовуєте EF Core, це правильна відповідь. Або принаймні, для мене проблема полягала в тому, що Microsoft.EntityFrameworkCore.Toolsне встановлено.
Кірк Волл

2

Здається, ця проблема виникає, коли ви відкриваєте проект безпосередньо з File Explorer. Спробуйте спочатку запустити VS, а потім відкрити проект - працював для мене. Я здогадуюсь, що це стосується доступу до шляхів.


після декількох перезавантажень і не вирішення проблеми це допомогло вирішити мою проблему!
Ніклас


0

Якщо інші відповіді не спрацьовують (VS 2017): очистіть кеш NuGet, перезапустіть VS та відновіть пакети.


0

Я виявив, що це сталося через корумпований пакет. Я встановив Automapper, коли він уже був встановлений. Було зрозуміло лише, що цей пакет пошкоджений, коли я спробував встановити інший пакет.

Видалення пошкодженого пакету вирішило цю проблему для мене.

Потім можна перевстановити автоматизатор. Проблема була у версії 5.4, зараз я щасливо на 6.0.


0

Для мене виявляється, ядро ​​EntityFramework не було встановлено в моєму проекті (тому що я почав із порожнього проекту). Тож встановлення EntityFramework пакету вирішив проблему. Іноді, якщо встановлення EntityFramework не вдалося, спробуйте встановити окремі пакети один за одним

Напр

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

0

Я вирішив оновлення консолі Package Manager.

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

Потім я завантажую нове з nuget, і тоді це було вирішено.


0

У мене виникла ця проблема у Visual Studio 2015 та її вирішили, оновивши версію Nuget.

Інструменти -> Розширення та оновлення -> Оновлення -> Галерея Visual Studio


0

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


0

У мене виникла та сама проблема після того, як я випадково відкрив рішення 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 нарешті знову почали працювати.


0

У моєму випадку:

  • Проект перезавантаження не допоміг
  • Перезавантаження VS не допомогло
  • Перезавантаження комп’ютера не допомогло
  • Reinstal EF не допоміг

Але я знайшов статтю, де було запропоновано вручну імпортувати відсутні пакет EF, використовуючи PM Conole:

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

І це рішення вирішило мою проблему.


0

У моєму випадку перезапуск Visual Studio (багато, багато разів) не працював, тоді, коли я шукав в іншому місці, я знайшов повідомлення на вихідному терміналі:

Поточний .NET SDK не підтримує націлювання .NET Core 2.2. Або націліть .NET Core 2.1 або новішу версію, або використовуйте версію .NET SDK, яка підтримує .NET Core 2.2.

Тож я встановив потрібну версію .NET Core і команда успішно запустилася.


0

У мене виникла ця проблема у VS 2019 із існуючим проектом із використанням EntityFramework 6.3.0. У цьому проекті були здійснені деякі дивні зміни версії протягом певного періоду часу, і нічого не призвело б до роботи. Я вважаю, що я намагався будь-яку пропозицію, перераховану тут, не пощастило.

Нарешті, оновлення до версії попереднього релізу EntityFramework ( в даний час 6.4.0-preview3-19553-01) виправив проблему, виконавши це в консолі Package Manager: Update-Package EntityFramework -prerelease. Я сподіваюся, що після виходу цієї версії в прямому ефірі протягом наступних тижнів вона буде працювати належним чином.


0

Встановіть Microsoft.EntityFrameworkCore.Tools вирішили проблему для мене, використовували нукет-пакети


0

У моєму випадку я зробив наступне: - відновив відсутні пакети NuGet, натиснувши кнопку «Відновити» вгорі консолі диспетчера пакунків - перезапустив Visual Studio - запустити update-database


-1

Для мене проблемою була версія Nuget.

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

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