Der Begriff 'Update-Datenbank' wird nicht als Name eines Cmdlets erkannt

111

Ich benutze EF5 Beta1 und während ich vorher die "Update-Datenbank" ausführen konnte. Nachdem ich Visual Studio heruntergefahren habe, kann ich es nicht mehr ausführen. Ich erhalte folgende Fehlermeldung:

Der Begriff "Update-Datenbank" wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines bedienbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens. Wenn ein Pfad enthalten war, überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut. In Zeile: 1 Zeichen: 16 + Update-Datenbank <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Datenbank: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Ich habe versucht, EF5b1 neu zu installieren, und obwohl dies erfolgreich war (bereits installiert), funktioniert die 'Update-Datenbank' immer noch nicht.

Kann jemand helfen???

user1265146
quelle
3
Gestern hatte ich ein ähnliches Problem mit einem anderen Cmdlet, und ein vollständiger Neustart des Systems half ...
Nemesv
11
Ein Neustart ist nicht erforderlich. Nach der Paketwiederherstellung werden keine init.ps1-Skripte ausgeführt (daher wurde der Befehl nicht gefunden). Beenden Sie VS einfach und starten Sie es neu (oder entladen / laden Sie das Projekt neu).
RickAndMSFT
1
Mir ist das heute passiert. Ich habe ein Repo für ein Teamprojekt geöffnet und es musste einige Pakete wiederherstellen. Nach der Wiederherstellung würden die Befehle update-databaseund add-migrationnicht funktionieren. Durch einen Neustart von Visual Studio wurde das Problem behoben.
Jmbertucci

Antworten:

169

Ich habe dieses Problem in letzter Zeit einige Male gehabt. Ich fand, dass die Lösung darin bestand, die Package Manager-Konsole zu schließen, Visual Studio zu schließen und sie dann erneut zu öffnen. Ein Neustart funktionierte auch die meiste Zeit, aber nicht immer.

Richard
quelle
7
Normalerweise müssen Sie nur den Neustart von VS beenden. Siehe meine Kommentare in der ursprünglichen Frage. In seltenen Fällen müssen Sie VS möglicherweise zweimal beenden / neu starten.
RickAndMSFT
1
Ich habe mich gerade dem Problem gestellt und Visual Studio neu gestartet und die Dinge funktionierten wieder. Vielen Dank.
Shubh
Vielen Dank für eine effektive, wenn nicht beschissene Lösung. Es scheint alles zu sein, was aus einer Million Dingen heraus funktioniert, die ich ausprobiert habe.
ProfK
1
Ja natürlich. Das ist die Lösung. Legit Lösung. Vielen Dank, Microsoft!
Khateeb321
2
Ich habe "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" in meinen Datenprojekten und "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" in meinem Hauptwebprojekt installiert, wodurch das Problem für mich behoben wurde.
HaBo
51

Wenn Sie Entity Framework verwenden:

Fehlermeldung: "Fehlermeldung (aus dem Befehl Update-Database in der PMC): Der Begriff 'Update-Database' wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens oder wenn ein Pfad enthalten war, überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut. "

Lösung: "Beenden Sie Visual Studio. Öffnen Sie das Projekt erneut und versuchen Sie es erneut."

Weitere Informationen finden Sie unter: Advanced Entity Framework 6-Szenarien für eine MVC 5-Webanwendung (12 von 12)

Hoffe das hilft...

Murat Yıldız
quelle
@ AlbatrossCafe Sicher :)
Murat Yıldız
1
VS Entwicklerteam sollte Refresh VS Button für solche Probleme geben :)
Sohaib javed
@sohaibjaved Bei einigen Problemen würde ein Neustart von VS nicht ausreichen, und es ist eine gewisse Verzeichnisbereinigung erforderlich, wie in Visual Studio 2015 angegeben, extrem langsam . Zu Ihrer Information ...
Murat Yıldız
Ich habe die Zählung verloren, wie viele Dinge durch einen Neustart von Visual Studio gelöst werden
EKanadily
21

Wenn ich VS lade, wird dies manchmal in meiner Paketmanagerkonsole angezeigt:

Der Wert kann nicht Null sein.

Parametername: Pfad1

Ich habe noch keine Ahnung, was das verursacht, aber es scheint, dass beim Start der Powershell-Konsole etwas schief geht, wodurch die Registrierung bestimmter Module, wie z. B. der EF-Powershell-Erweiterungen, unterbrochen wird. Sie können es jedoch einfach manuell laden:

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

Stellen Sie sicher, dass Sie 6.1.1 durch Ihre aktuelle Version von Entity Framework ersetzen.

Steve Rukuts
quelle
4
Danke dir! Einzige Lösung, die bei mir funktioniert hat. Für alle, die EF 6.1.3 mit VS 2015 verwenden, gibt es jedoch einen Fehler in EntityFramework.psm1, und hier ist ein Patch verfügbar. Stackoverflow.com/a/30062684/1267778 .
Parlament
18

Durch die Neuinstallation des Nuget-Pakets wurde dieses Problem für mich behoben

dh ausführen

Install-Package EntityFramework -Version 5.0.0

im Paketmanager

atreeon
quelle
1
Das funktioniert bei mir. Das Projekt, an dem ich gearbeitet habe, verwendete EF und ich gehe automatisch davon aus, dass das Paket installiert wurde. Es stellte sich heraus, dass es nicht so war. Der Entwickler hat gerade direkt auf EF dll verwiesen. Das EntityFramework-Paket muss im Projekt installiert sein, damit Update-Database cmd funktioniert.
stack247
Es ist unwahrscheinlich, dass diese Antwort hilft, aber sie hat mir den Tag gerettet. Vielen Dank,
Nelson Miranda
Wrestling mit FKs heute mit Fluent API usw. und irgendwie wird EntityFramework immer wieder fallen gelassen. Was für mich in diesem Sinne tatsächlich funktionierte, war, noch einen anderen zu machen Update-Package -Reinstall EntityFramework.
Matt Borja
für mich neu installieren und neu starten. einfach neu installieren funktioniert nicht und einfach neu starten funktioniert auch nicht)
RMazitov
9

Sie erhalten diesen Fehler, wenn die EF-Tools nicht ordnungsgemäß installiert sind.

Versuchen Sie den folgenden Befehl in Nuget Package Manager // Deinstalliert und installiert dieselbe Version von EF

Update-Package "EntityFramework" -reinstall

Wenn Sie immer noch vor dem gleichen Problem stehen. Erstellen Sie ein neues Webprojekt und führen Sie den folgenden Befehl in Nuget aus.

(Hinweis: Das neue Projekt muss nicht an derselben Lösung oder am selben Speicherort erstellt werden.)

// Dadurch wird EF auf die neueste Version (einschließlich der Tools) aktualisiert. // Wenn Sie eine bestimmte Version verwenden möchten, verwenden Sie das -versionFlag.

Update-Package "EntityFramework"

Sobald dies erledigt ist, überprüfen Sie Ihr ursprüngliches Projekt und Sie können das neu erstellte Projekt löschen.

sudhAnsu63
quelle
Ja!! Danke =) Ich hatte nur EntityFramwork, EF.Design, EF.SqlServer und EF.SqlServer.Design installiert.
Janneman96
9

Starten Sie Visual Studio einfach neu, um das Problem zu beheben. Funktioniert bei mir.

Abdullah Ibn Mannan
quelle
Es ist wirklich lustig, wie ein Neustart meines PCs für dieses Problem funktioniert
Prince Tegaton
4

Ich hatte das gleiche Problem, und der Ursprung lag in meinem Pfadnamen. Ich hatte in meinem Pfad einen Verzeichnisnamen mit geraden Klammern wie folgt: C:\[PROJ]\TestApp .

Als ich die Klammern entfernte C:\PROJ\TestApp, fing es an, gut zu funktionieren ...

António Mourão
quelle
Normalerweise müssen Sie nur den Neustart von VS beenden. Siehe meine Kommentare in der ursprünglichen Frage.
RickAndMSFT
@ RickAndMSFT Dies ist viel näher an einer besseren Lösung, die "nur" VS neu startet.
ProfK
@Antonio Auch ich hatte das gleiche Problem und Ihre Lösung hat auch bei mir funktioniert.
User5590
4

Nur ReOpen Visual Studio ist Arbeit für mich

Grauer Wolf
quelle
4

Für mich war das Problem die Nuget-Version .

  1. Deinstallieren Sie Nuget Package Manager.
  2. Starten Sie Visual Studio neu.
  3. installierte neue Version von Nuget Package Manager.
  4. Starten Sie dann Visual Studio erneut.
reza.cse08
quelle
1
Dies war der Fall für mich, aber ich musste nur Nuget in Erweiterungen aktualisieren und aktualisieren
Oak
Dies funktionierte für mich, deinstallierte Nuget Package Manager, installierte Nuget Package Manager neu, startete Visual Studio neu, deinstallierte EntityFramework, installierte EntityFramework neu
Rizan Zaky
3

Ich habe mit der Deinstallation und Neuinstallation von "Microsoft.EntityFrameworkCore" und "Microsoft.EntityFrameworkCore.Tools" gelöst.

Marco Rinaldi
quelle
1
Wenn Sie EF Core verwenden, ist dies die richtige Antwort. Zumindest war das Problem für mich, dass Microsoft.EntityFrameworkCore.Toolses nicht installiert wurde.
Kirk Woll
2

Dieses Problem scheint aufzutreten, wenn Sie das Projekt direkt über den Datei-Explorer öffnen. Versuchen Sie zuerst VS zu starten und dann das Projekt zu öffnen - hat für mich funktioniert. Ich vermute, hier geht es um den Zugang zu Pfaden.

Johnny Nintendo
quelle
Nachdem ich ein paar Mal neu gestartet hatte und es nicht gelöst hatte, half dies, mein Problem zu lösen!
Niklas
0

Wenn die anderen Antworten nicht funktionieren (VS 2017): Leeren Sie den NuGet-Cache, starten Sie VS neu und stellen Sie die Pakete wieder her.


quelle
0

Ich fand, dass es an einem beschädigten Paket lag. Ich hatte Automapper installiert, als es bereits installiert war. Es war nur klar, dass dieses Paket beschädigt war, als ich versuchte, ein anderes Paket zu installieren.

Das Entfernen des beschädigten Pakets hat dieses Problem für mich behoben.

Sie können dann automapper neu installieren. Das Problem war mit Version 5.4, ich bin jetzt glücklich auf 6.0.

Bäume_ sind_ großartig
quelle
0

Für mich stellte sich heraus, dass der EntityFramework-Kern nicht in meinem Projekt installiert war (weil ich mit einem leeren Projekt begonnen habe). Die Installation des EntityFramework- Pakets hat das Problem behoben. Wenn die Installation von EntityFramework fehlgeschlagen ist, versuchen Sie manchmal, einzelne Pakete einzeln zu installieren

Z.B

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
Deepak Kumar
quelle
0

Ich habe durch Aktualisieren der Package Manager-Konsole gelöst.

Ich habe keine Update-Datenbank in der Package Manager-Konsole erhalten. Dann starte ich mehrmals neu. Starten Sie auch Windows neu.

Dann lade ich ein neues von Nuget herunter und dann wurde es gelöst.

Shiblee
quelle
0

Ich hatte dieses Problem in Visual Studio 2015 und habe es durch Aktualisieren der Version von Nuget behoben.

Extras -> Erweiterungen und Updates -> Updates -> Visual Studio-Galerie

Owen Pauling
quelle
0

Eine einfache Lösung für mich bestand darin, sicherzustellen, dass zwischen Update und Datenbank ein Bindestrich vorhanden war: update-databaseund Kleinbuchstaben zu verwenden. Es mag zufällig sein, aber als ich dies in der Packet Manager-Konsole tat, wurde die Datenbank tatsächlich aktualisiert und ich erhielt eher die Meldung "Fertig" als den not recognized as the name of a cmdlet, function, script fileFehler.

user10776524
quelle
0

Ich hatte das gleiche Problem, nachdem ich versehentlich eine Visual Studio-Lösung mit Visual Studio 2015 anstelle von 2017 geöffnet hatte. Das Projekt funktionierte vor diesem Missgeschick einwandfrei. Es war ein älteres Projekt mit EF 5.0 und nicht mit EF Core.

Ich habe alles versucht - Visual Studio unzählige Male neu gestartet, den NuGet-Cache bereinigt, alles im Paketordner gelöscht, EF 5 für das Projekt neu installiert - nicht gut, Add-Migration wurde nicht erkannt. Wenn ich EF auf 6 aktualisiert habe, wurden die Befehle erkannt, aber ich wollte noch kein Upgrade durchführen. Sobald ich zu EF 5 zurückkehrte, kehrte das Problem zurück.

Das einzige, was mich letztendlich gerettet hat, war Folgendes zu tun:

  • Schließen Sie Visual Studio
  • Löschen Sie alles aus dem Paketordner
  • Löschen Sie den Ordner .vs im Stammverzeichnis Ihrer Lösung. Dieser Ordner ist normalerweise ausgeblendet. Sie müssen die Einstellung Versteckte Dateien und Ordner anzeigen aktivieren oder die Option Versteckte Elemente auf der Registerkarte Ordneransicht aktivieren
  • Starten Sie Visual Studio und öffnen Sie Ihre Lösung. Es wird darum gebeten, NuGet-Pakete wiederherzustellen. Stimmen Sie dem zu.

Jetzt fingen die EF-Befehle endlich wieder an zu arbeiten.

JustAMartin
quelle
0

In meinem Fall:

  • Projekt neu laden hat nicht geholfen
  • Neustart VS hat nicht geholfen
  • Neustart des Computers hat nicht geholfen
  • Reinstal EF hat nicht geholfen

Ich fand jedoch einen Artikel, in dem vorgeschlagen wurde, fehlende EF-Pakete mithilfe von PM Conole manuell zu importieren:

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

Und diese Lösung hat mein Problem gelöst.

MANN
quelle
0

In meinem Fall hat ein Neustart von Visual Studio (viele, viele Male) nicht funktioniert. Als ich mich anderswo umsah, fand ich eine Meldung auf dem Ausgabeterminal:

Das aktuelle .NET SDK unterstützt das Targeting von .NET Core 2.2 nicht. Wählen Sie entweder .NET Core 2.1 oder niedriger aus oder verwenden Sie eine Version des .NET SDK, die .NET Core 2.2 unterstützt.

Also habe ich die erforderliche Version von .NET Core installiert und der Befehl wurde erfolgreich ausgeführt.

maury844
quelle
0

Ich hatte dieses Problem in VS 2019 mit einem vorhandenen Projekt, das EntityFramework 6.3.0 verwendet. Bei diesem Projekt wurden im Laufe der Zeit einige seltsame Versionsänderungen vorgenommen, und nichts würde es zum Laufen bringen. Ich glaube, ich habe jeden hier aufgeführten Vorschlag ohne Glück ausprobiert.

Das Update auf die Vorabversion von EntityFramework (derzeit 6.4.0-Vorschau 3-19553-01) hat das Problem behoben, indem es in der Package Manager-Konsole ausgeführt wurde : Update-Package EntityFramework -prerelease. Ich hoffe, dass diese Version, wenn sie in den nächsten Wochen live veröffentlicht wird, ordnungsgemäß funktioniert.

user12861
quelle
0

Installieren Sie Microsoft.EntityFrameworkCore.Tools löste das Problem für mich, verwendete Nuget-Pakete

Mario Berthely
quelle
0

In meinem Fall habe ich Folgendes getan: - Fehlende NuGet-Pakete durch Klicken auf die Schaltfläche "Wiederherstellen" oben in der Package Manager-Konsole wiederhergestellt - Visual Studio neu gestartet - Ausführen update-database

Dragos Bajenaru
quelle
-1

Für mich war das Problem die Nuget-Version.

Ich habe Nuget entfernt und neu installiert, dann Visual Studio neu gestartet und dann haben alle angefangen zu arbeiten.

Luke
quelle