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 ???

user1265146
źródło
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.

Richard
źródło
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...

Murat Yıldız
źródło
@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.

Steve Rukuts
źródło
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

atreeon
źródło
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.

sudhAnsu63
źródło
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.

Abdullah Ibn Mannan
źródło
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 ...

António Mourão
źródło
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

Studio wizualne Just ReOpen to dla mnie praca

Szary Wilk
źródło
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.
reza.cse08
źródło
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”

Marco Rinaldi
źródło
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.

Johnny Nintendo
źródło
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.


źródło
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.

drzewa_are_great
źródło
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
Deepak Kumar
źródło
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.

Shiblee
źródło
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

Owen Pauling
źródło
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.

user10776524
źródło
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ć.

JustAMartin
źródło
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.

CZŁOWIEK
źródło
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.

maury844
źródło
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.

user12861
źródło
0

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

Mario Berthely
źródło
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

Dragos Bajenaru
źródło
-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ć.

Łukasz
źródło