wake-up-neo.com

dotnet ef nicht in .NET Core 3 gefunden

Ich folge den Dokumenten , um eine erste Migration zu erstellen. Wenn ich dotnet ausführe, erhalte ich den Hilfeabschnitt, was bedeutet, dass der PATH ordnungsgemäß funktioniert.

Dann versuche ich, den folgenden Befehl aus den Dokumenten im Konsolenfenster auszuführen:

dotnet ef migrations add InitialCreate  

Ich erhalte folgende Fehlermeldung:

Could not execute because the specified command or file was not found.  
Possible reasons for this include:  
  * You misspelled a built-in dotnet command.  
  * You intended to execute a .NET Core program, but dotnet-ef does not exist.  
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.
  • Ich habe das erste Element ausgeschlossen, seit ich den Befehl kopiert habe.
  • Ich habe das zweite Element ausgeschlossen, da das Paket Microsoft.EntityFrameworkCore.SqlServer installiert ist.
  • Ich habe das dritte Element ausgeschlossen, da ich beim Aufrufen von dotnet den Hilfeabschnitt erhalte.

Ich google das Problem, aber da die Version neu ist, gibt es nicht viel zu tun und/oder es ertrinkt in ähnlichen Problemen aus früheren Versionen.

Ich habe versucht, Microsoft.EntityFrameworkCore zwangsweise zu installieren, nur für den Fall, dass es explizit hinzugefügt werden muss. Ich habe die Fehlermeldung erhalten, dass die neueste Version 2.2.6 ist und ein Downgrade kein Problem ist. Ich bin nicht sicher, wie ich die Version installieren soll, die mit dem SQL-Paket kompatibel ist, das ich bereits auf meinem System habe (und noch weniger sicher, ob dies der richtige Ansatz ist, um dieses Problem zu beheben).

Paket-Downgrade festgestellt: Microsoft.EntityFrameworkCore von 3.0.0-Vorschau6.19304.10 auf 2.2.6. Verweisen Sie direkt aus dem Projekt auf das Paket, um eine andere Version auszuwählen.
Web ->
Microsoft.EntityFrameworkCore.SqlServer 3.0.0-Preview6.19304.10 ->
Microsoft.EntityFrameworkCore.Relational 3.0.0-Preview6.19304.10 ->
Microsoft.EntityFrameworkCore (> = 3.0.0-Vorschau6.19304.10)
Web -> Microsoft.EntityFrameworkCore (> = 2.2.6)

117

Siehe Ankündigung für ASP.NET Core 3 Preview 4, in dem erklärt wird, dass dieses Tool nicht mehr integriert ist und eine explizite Installation erfordert:

Das dotnet ef-Tool ist nicht mehr Teil des .NET Core SDK

Diese Änderung ermöglicht es uns, dotnet ef Als reguläres .NET CLI-Tool zu versenden, das entweder als globales oder lokales Tool installiert werden kann. Um beispielsweise Migrationen verwalten oder ein DbContext erstellen zu können, installieren Sie dotnet ef Als globales Tool, indem Sie den folgenden Befehl eingeben:

dotnet tool install --global dotnet-ef --version 3.0.0

Der Grund für die Änderung wird in docs erläutert:

Warum

Diese Änderung ermöglicht es uns, dotnet ef Als reguläres .NET CLI-Tool auf NuGet zu verteilen und zu aktualisieren, was mit der Tatsache übereinstimmt, dass EF Core 3.0 auch immer als NuGet-Paket verteilt wird.

Darüber hinaus müssen Sie Ihrem Projekt möglicherweise die folgenden NuGet-Pakete hinzufügen:

219
Kirk Larkin

BEARBEITEN: Wenn Sie eine Docker-Datei für Bereitstellungen verwenden, müssen Sie diese Schritte ausführen, um dieses Problem zu beheben.

Ändern Sie Ihre Docker-Datei so, dass sie Folgendes enthält:

FROM mcr.Microsoft.com/dotnet/core/sdk:3.1 AS build-env
RUN dotnet tool install -g dotnet-ef --version 3.1.1
RUN export PATH="$PATH:/root/.dotnet/tools"

Ändern Sie auch Ihre dotnet ef Befehle zu sein dotnet-ef

6
Nick Spicer

Ich hatte das gleiche Problem. Ich habe mich entschlossen, alle Versionen auf meinem PC zu deinstallieren und dann dotnet neu zu installieren.

0
Angel Ucan

Globale Tools können im Standardverzeichnis oder an einem bestimmten Speicherort installiert werden. Die Standardverzeichnisse sind:

  • Linux/macOS ---> $ HOME/.dotnet/tools

  • Windows --->% USERPROFILE% \. Dotnet\tools

Wenn Sie versuchen, ein globales Tool auszuführen, überprüfen Sie, ob die Umgebungsvariable PATH auf Ihrem Computer den Pfad enthält, in dem Sie das globale Tool installiert haben, und ob sich die ausführbare Datei in diesem Pfad befindet.

Fehlerbehebung bei Problemen mit der Verwendung des .NET Core-Tools

0
Gambitier