Termin „Update-Database” nie jest rozpoznawany jako nazwa polecenia cmdlet


113

Używam EF5 beta1 i chociaż mogłem wcześniej uruchomić „Update-Database”. Po zamknięciu programu Visual Studio nie mogę go uruchomić. Otrzymuję następujący błąd:

Termin „Update-Database” nie jest rozpoznawany jako nazwa polecenia cmdlet, funkcji, pliku skryptu lub programu operacyjnego. Sprawdź pisownię nazwy lub, jeśli ścieżka została dołączona, sprawdź, czy jest ona poprawna i spróbuj ponownie. W wierszu: 1 znak: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Próbowałem ponownie zainstalować EF5b1 i mimo powodzenia (już zainstalowanego), „Baza danych aktualizacji” nadal nie działa.

Czy ktoś może pomóc ???


3
Wczoraj miałem podobny problem z innym cmdletem i kompletny restart systemu pomógł ...
nemesv

11
Ponowne uruchomienie nie jest konieczne. Nie uruchamiamy skryptów init.ps1 po wykonaniu przywracania pakietu (dlatego polecenie nie zostało znalezione). Po prostu wyjdź i zrestartuj VS (lub wyładuj / przeładuj projekt).
RickAndMSFT,

1
Przydarzyło mi się to dzisiaj. Otworzyłem repozytorium dla projektu zespołowego i musiałem przywrócić niektóre pakiety. Po przywróceniu polecenia update-databasei add-migrationnie działały. Ponowne uruchomienie programu Visual Studio rozwiązało problem.
jmbertucci

Odpowiedzi:


169

Ostatnio miałem ten problem kilka razy. Rozwiązaniem, które zadziałało, było zamknięcie konsoli menedżera pakietów, zamknięcie programu Visual Studio, a następnie ponowne ich otwarcie. Ponowne uruchamianie również działało przez większość czasu, ale nie zawsze.


7
Zwykle wystarczy wyjść z restartu VS. Zobacz moje komentarze w pierwotnym pytaniu. W rzadkich przypadkach może być konieczne dwukrotne zamknięcie / ponowne uruchomienie VS.
RickAndMSFT,

1
Właśnie zmierzyłem się z problemem i ponownie uruchomiłem Visual Studio i wszystko znowu działało. Dzięki.
Shubh

Dziękuję za skuteczne, jeśli nie kiepskie rozwiązanie. Wydaje się, że to wszystko, co działa z miliona rzeczy, których próbowałem.
ProfK

1
Tak oczywiście. To jest rozwiązanie. Legalne rozwiązanie. Dziękuję Microsoft!
Khateeb321

2
Zainstalowałem "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" w moich projektach danych i "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" w moim głównym projekcie internetowym, co rozwiązało problem.
HaBo,

51

Jeśli używasz Entity Framework:

Komunikat o błędzie: „Komunikat o błędzie (z polecenia Update-Database w PMC): Termin„ Update-Database ”nie jest rozpoznawany jako nazwa polecenia cmdlet, funkcji, pliku skryptu lub programu. Sprawdź pisownię nazwy lub jeśli ścieżka została dołączona, sprawdź, czy jest ona poprawna i spróbuj ponownie ”.

Rozwiązanie: „Zamknij program Visual Studio. Otwórz ponownie projekt i spróbuj ponownie”.

Aby uzyskać więcej informacji, odwiedź: Scenariusze Advanced Entity Framework 6 dla aplikacji sieci Web MVC 5 (12 z 12)

Mam nadzieję że to pomoże...


@AlbatrossCafe Sure :)
Murat Yıldız

1
Zespół programistów VS powinien dać przycisk Odśwież VS w przypadku takich problemów :)
sohaib javed

@sohaibjaved W przypadku niektórych problemów ponowne uruchomienie VS nie wystarczy i konieczne jest czyszczenie katalogów, jak wskazano w programie Visual Studio 2015 bardzo wolno . Do Twojej wiadomości ...
Murat Yıldız

Straciłem rachubę, ile rzeczy można rozwiązać, ponownie uruchamiając Visual Studio
EKanadily

21

Czasami, gdy ładuję VS, widzę to w mojej konsoli menedżera pakietów:

Wartość nie może być pusta.

Nazwa parametru: ścieżka1

Nie mam jeszcze pojęcia, co to powoduje, ale wydaje się, że coś idzie nie tak podczas uruchamiania konsoli Powershell, która przerywa rejestrację określonych modułów, takich jak rozszerzenia EF powershell. Możesz jednak po prostu załadować go ręcznie:

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

Upewnij się, że zastąpiłeś 6.1.1 dowolną bieżącą wersją Entity Framework.


4
Dziękuję Ci! Jedyne rozwiązanie, które zadziałało dla mnie. Jednak dla każdego, kto używa EF 6.1.3 z VS 2015, jest błąd w EntityFramework.psm1 i dostępna jest łatka tutaj stackoverflow.com/a/30062684/1267778 .
parlament

18

Ponowna instalacja pakietu NuGet rozwiązała ten problem

tj. wykonaj

Install-Package EntityFramework -Version 5.0.0

w menedżerze pakietów


1
To działa dla mnie. Projekt, nad którym pracowałem, używał EF i automatycznie zakładam, że pakiet został zainstalowany. Okazało się, że tak nie jest. Deweloper właśnie odwołał się bezpośrednio do EF dll. Pakiet EntityFramework musi być zainstalowany w projekcie, aby cmd Update-Database działał.
stack247

Wydaje się, że ta odpowiedź nie pomoże, ale uratowała mi dzień. Dzięki,
Nelson Miranda,

Walka z FK dzisiaj przy użyciu Fluent API itp. I w jakiś sposób EntityFramework jest upuszczana. To, co faktycznie zadziałało dla mnie w tym kierunku, to zrobienie jeszcze jednego Update-Package -Reinstall EntityFramework.
Matt Borja,

dla mnie zainstaluj ponownie i uruchom ponownie. po prostu zainstaluj ponownie, nie działa, po prostu uruchom ponownie, też nie działa)
RMazitov

9

ten błąd pojawi się, gdy narzędzia EF nie zostaną poprawnie zainstalowane.

wypróbuj poniższe polecenie w menedżerze pakietów Nuget // Odinstaluj i zainstaluj tę samą wersję EF

Update-Package "EntityFramework" -reinstall

Jeśli nadal masz ten sam problem. utwórz nowy projekt sieci Web i uruchom poniższe polecenie w nuget.

(Uwaga: nie ma potrzeby tworzenia nowego projektu w tym samym rozwiązaniu lub w tej samej lokalizacji).

// Spowoduje to zaktualizowanie EF do najnowszej wersji (w tym narzędzi) // jeśli chcesz użyć określonej wersji, użyj -versionflagi.

Update-Package "EntityFramework"

Gdy to zrobisz, sprawdź swój oryginalny projekt i możesz usunąć nowo utworzony projekt.


Tak!! Dzięki =) Miałem zainstalowane tylko EntityFramwork, EF.Design, EF.SqlServer i EF.SqlServer.Design.
Janneman96

9

Po prostu uruchom ponownie Visual Studio, rozwiąże to problem. Pracuje dla mnie.


To naprawdę zabawne, jak działa ponowne uruchomienie komputera w przypadku tego problemu
Prince Tegaton


4

Miałem ten sam problem, a jego pochodzenie znajdowało się na mojej ścieżce, miałem na swojej ścieżce nazwę katalogu z nawiasami prostymi, na przykład: C:\[PROJ]\TestApp .

Kiedy zdjąłem wsporniki C:\PROJ\TestApp, to zaczęło działać dobrze ...


Zwykle wystarczy wyjść z restartu VS. Zobacz moje komentarze w pierwotnym pytaniu.
RickAndMSFT,

@RickAndMSFT Jest to znacznie bliższe lepszemu rozwiązaniu, które „po prostu” uruchamia ponownie VS.
ProfK

@Antonio Nawet ja miałem ten sam problem i twoje rozwiązanie również zadziałało.
Użytkownik5590


4

Dla mnie problemem była wersja Nuget .

  1. odinstaluj Menedżera pakietów Nuget.
  2. uruchom ponownie program Visual Studio.
  3. zainstalował nową wersję Menedżera pakietów Nuget.
  4. następnie ponownie uruchom program Visual Studio.

1
Tak było w moim przypadku, ale musiałem tylko zaktualizować nuget w rozszerzeniach i zaktualizować
Oak

to zadziałało dla mnie, odinstalowałem menedżera pakietów NuGet, ponownie zainstalowałem menedżera pakietów NuGet, zrestartowałem Visual Studio, odinstalowałem EntityFramework, ponownie zainstalowałem EntityFramework
Rizan Zaky

3

Rozwiązałem przez odinstalowanie i ponowne zainstalowanie „Microsoft.EntityFrameworkCore” i „Microsoft.EntityFrameworkCore.Tools”


1
Jeśli używasz EF Core, to jest poprawna odpowiedź. A przynajmniej problem polegał na tym, że Microsoft.EntityFrameworkCore.Toolsnie został zainstalowany.
Kirk Woll,

2

Wydaje się, że ten problem występuje, gdy otwierasz projekt bezpośrednio z Eksploratora plików. Spróbuj najpierw uruchomić VS, a potem otworzyć projekt - zadziałało dla mnie. Domyślam się, że chodzi o dostęp do ścieżek.


po kilkukrotnym ponownym uruchomieniu i nie rozwiązaniu problemu pomogło to rozwiązać mój problem!
Niklas


0

Jeśli inne odpowiedzi nie działają (VS 2017): wyczyść pamięć podręczną NuGet, uruchom ponownie VS, a następnie przywróć pakiety.


0

Okazało się, że przyczyną był uszkodzony pakiet. Zainstalowałem Automappera, gdy był już zainstalowany. Było jasne tylko, że ten pakiet jest uszkodzony, gdy próbowałem zainstalować inny pakiet.

Usunięcie uszkodzonego pakietu rozwiązało ten problem.

Następnie możesz ponownie zainstalować program automapper. Problem dotyczył wersji 5.4, teraz szczęśliwie korzystam z wersji 6.0.


0

Dla mnie okazuje się, że rdzeń EntityFramework nie został zainstalowany w moim projekcie (ponieważ zacząłem od pustego projektu). Więc instaluję EntityFramework pakietu rozwiązało problem. Czasami, jeśli instalacja EntityFramework nie powiodła się, spróbuj zainstalować pojedyncze pakiety jeden po drugim

Na przykład

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

0

Rozwiązałem, aktualizując konsolę Menedżera pakietów.

Nie otrzymywałem aktualizacji bazy danych w konsoli Menedżera pakietów. Następnie kilka razy uruchamiam ponownie. Uruchom ponownie system Windows.

Następnie pobieram nowy z nuget i wtedy został rozwiązany.


0

Miałem ten problem w programie Visual Studio 2015 i rozwiązałem go, aktualizując wersję Nuget.

Narzędzia -> rozszerzenia i aktualizacje -> aktualizacje -> Visual Studio Gallery


0

Prostym rozwiązaniem było upewnienie się, że między aktualizacją a bazą danych jest kreska, na przykład: update-databasei użycie małych liter. Może to być przypadek, ale kiedy zrobiłem to w konsoli menedżera pakietów, baza danych faktycznie została zaktualizowana i otrzymałem komunikat o zakończeniu, a nie not recognized as the name of a cmdlet, function, script filebłąd.


0

Zacząłem mieć ten sam problem po tym, jak przypadkowo otworzyłem rozwiązanie Visual Studio w Visual Studio 2015 zamiast 2017. Projekt działał dobrze przed tą wpadką. Był to starszy projekt z EF 5,0, a nie EF Core.

Wypróbowałem wszystko, co zasugerowałem - niezliczoną ilość razy ponownie uruchomiłem Visual Studio, wyczyściłem pamięć podręczną NuGet, usunąłem wszystko w folderze pakietów, ponownie zainstalowałem EF 5 dla projektu - nic dobrego, migracja dodatków nie została rozpoznana. Jeśli zaktualizowałem EF do 6, zaczął rozpoznawać polecenia, ale nie chciałem jeszcze aktualizować. Tak więc, gdy tylko wróciłem do EF 5, problem powrócił.

Jedyną rzeczą, która w końcu mnie uratowała, było wykonanie następujących czynności:

  • zamknij program Visual Studio
  • usuń wszystko z folderu pakietów
  • Usuń folder .vs w katalogu głównym rozwiązania. Ten folder jest zwykle ukryty, musisz włączyć ustawienie Pokaż ukryte pliki i foldery lub zaznaczyć Ukryte elementy w folderze zakładka Widok
  • uruchom program Visual Studio i otwórz swoje rozwiązanie. Poprosi o przywrócenie pakietów NuGet, zaakceptuj to.

Teraz polecenia EF wreszcie zaczęły ponownie działać.


0

W moim przypadku:

  • Przeładowanie projektu nie pomogło
  • Restart VS nie pomógł
  • Ponowne uruchomienie komputera nie pomogło
  • Reinstal EF nie pomógł

Ale znalazłem artykuł, w którym sugestia polegała na ręcznym zaimportowaniu brakującego pakietu EF przy użyciu PM Conole:

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

I to rozwiązanie rozwiązało mój problem.


0

W moim przypadku ponowne uruchomienie Visual Studio (wiele, wiele razy) nie zadziałało, wtedy jak szukałem gdzie indziej znalazłem komunikat na terminalu wyjściowym:

Bieżący zestaw .NET SDK nie obsługuje platformy .NET Core 2.2. Docelowy .NET Core 2.1 lub niższy albo użyj wersji zestawu .NET SDK, która obsługuje .NET Core 2.2.

Więc zainstalowałem wymaganą wersję .NET Core i polecenie zostało wykonane pomyślnie.


0

Miałem ten problem w VS 2019 z istniejącym projektem korzystającym z EntityFramework 6.3.0. W tym projekcie przez pewien czas wprowadzano dziwne zmiany wersji i nic nie pozwalało mu działać. Wydaje mi się, że bez powodzenia wypróbowałem wszystkie wymienione tutaj sugestie.

Wreszcie, aktualizacja do wersji pre-release of EntityFramework (obecnie 6.4.0-preview3-19553-01) nie rozwiąże problemu, uruchamiając tym w konsoli Menedżer pakietów: Update-Package EntityFramework -prerelease. Mam nadzieję, że gdy ta wersja zostanie wydana na żywo w ciągu najbliższych kilku tygodni, będzie działać poprawnie.


0

Zainstaluj Microsoft.EntityFrameworkCore.Tools rozwiązał problem za mnie, użyłem pakietów NuGet


0

W moim przypadku wykonałem następujące czynności: - przywróciłem brakujące pakiety NuGet klikając przycisk „Przywróć” na górze konsoli Menedżera pakietów - zrestartowałem Visual Studio - uruchom update-database


-1

Dla mnie problemem była wersja Nuget.

Usunąłem i ponownie zainstalowałem Nuget, a następnie ponownie uruchomiłem Visual Studio i wszystko zaczęło działać.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.