Ich verwende .NET Core 2.0 unter Arch VScode und versuche, EF-Tools zum Laufen zu bringen, erhalte jedoch weiterhin den Fehler "Befehl dotnet ef kann nicht gefunden werden". Ich habe fast überall gesucht und keiner der Vorschläge hat funktioniert. Wenn Sie also bitte helfen können, wäre das sehr dankbar.
Das Ergebnis der Ausführung von 'dotnet ef'
[wasiim@wasiim-PC WebApiServerApp]$ dotnet ef --help
Cannot find command 'dotnet ef', please run the following command to install
dotnet tool install --global dotnet-ef
[wasiim@wasiim-PC WebApiServerApp]$ dotnet tool list -g
Package Id Version Commands
---------------------------------------------------
dotnet-dev-certs 2.2.0 dotnet-dev-certs
dotnet-ef 2.2.3 dotnet-ef
[wasiim@wasiim-PC WebApiServerApp]$
Dies ist das dotnet --info Ergebnis, wenn es hilfreich ist
[wasiim@wasiim-PC WebApiServerApp]$ dotnet --info
.NET Core SDK (reflecting any global.json):
Version: 2.2.105
Commit: 7cecb35b92
Runtime Environment:
OS Name: arch
OS Version:
OS Platform: Linux
RID: arch-x64
Base Path: /opt/dotnet/sdk/2.2.105/
Host (useful for support):
Version: 2.2.3
Commit: 6b8ad509b6
.NET Core SDKs installed:
2.2.105 [/opt/dotnet/sdk]
.NET Core runtimes installed:
Microsoft.NETCore.App 2.2.3 [/opt/dotnet/shared/Microsoft.NETCore.App]
To install additional .NET Core runtimes or SDKs:
https://aka.ms/dotnet-download
Dies ist meine .csproj-Datei
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.2</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Lucene.Net.Analysis.Common" Version="4.8.0-beta00005" />
<PackageReference Include="Lucene.Net.QueryParser" Version="4.8.0-beta00005" />
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.5" />
<PackageReference Include="Lucene.Net" Version="4.8.0-beta00005" />
<PackageGroup Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" />
<PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.4" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
</ItemGroup>
</Project>
c#
entity-framework
asp.net-core
.net-core
csproj
Wasiim Ouro-sama
quelle
quelle
~/.dotnet/tools
in deinem$PATH
?Antworten:
Hinweis für Leser: Wenn Sie nicht installiert haben
dotnet ef
, müssen Sie es zuerst installieren :dotnet tool install --global dotnet-ef
. Der Fragesteller hat das schon getan. Sie müssen dies zuerst tun, bevor der Rest dieser Antwort helfen kann.Wie man das behebt
Fügen Sie unter Linux und MacOS der Konfiguration Ihrer Shell eine Zeile hinzu:
bash
/zsh
:export PATH="$PATH:$HOME/.dotnet/tools/"
csh
/tcsh
:set path = ($path $HOME/.dotnet/tools/)
Wenn Sie eine neue Shell / ein neues Terminal starten (oder wenn Sie sich das nächste Mal anmelden),
dotnet ef
sollte dies funktionieren.Für Windows :
In dieser Frage erfahren Sie, wie Sie der
PATH
Umgebungsvariablen hinzufügen .Sie müssen hinzufügen ,
%USERPROFILE%\.dotnet\tools
um diePATH
.Was ist los?
Die .NET Core 3.0-Version (Vorschau) dieses Fehlers ist viel aufschlussreicher:
$ dotnet ef 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.
Der zweite und der dritte beziehen sich beide auf den
dotnet
Versuch, einendotnet-ef
Befehl zu finden , können ihn aber nicht finden. Wie der dritte Punkt sagt,dotnet-ef
ist nicht in Ihrem Weg.Hier ist , was die docs sagen :
Also sollten Sie
$HOME/.dotnet/tools/
zu Ihrem hinzufügen$PATH
.Beachten Sie aber auch diesen Teil aus den Dokumenten:
Es hört sich also so an, als wäre etwas schief gelaufen. Wenn Sie mit einem manuellen Tarball installiert haben, ist das SDK fehlerhaft und Sie sollten diesen Fehler Microsoft melden. Wenn Sie ein Distributionspaket verwenden, haben sie es vermasselt und Sie sollten dies als Fehler melden.
quelle
dotnet tool install...
. Wenn die Frage das nicht enthalten würde, wären Sie völlig richtig.In meinem Fall war der Tools-Ordner nicht vorhanden,
%USERPROFILE%\.dotnet\
daher musste ich den Befehldotnet tool install --global dotnet-ef
ausführen, um dotnet ef zu installieren. Dann konnte ich dotnet ef ...Dies war das Ergebnis des obigen Installationsbefehls:
quelle
Für diejenigen, die nach dem Aktualisieren ihres Visual Studio- oder .NET Core-Pakets auf das Problem gestoßen sind, ist dies auf Aktualisierungen zurückzuführen, die in .NET Core 3 vorgenommen wurden, indem sie
dotnet ef
aus .NET Core entfernt und zu einem separaten Paket gemacht wurden, das installiert werden kann über:Als Referenz siehe diese Antwort und diese bahnbrechende Änderung
quelle
Ich habe alle oben genannten Antworten ausprobiert und mit dem neuesten Catalina-Update auf meinem Mac nicht funktioniert.
Wenn Sie beispielsweise die .netcore 3-Version verwenden, müssen Sie die folgenden Befehle ausführen:
export PATH="$PATH:$HOME/.dotnet/tools/" export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=false export DOTNET_ADD_GLOBAL_TOOLS_TO_PATH=true dotnet tool install --global dotnet-ef --version 3.0.0
quelle
Manchmal, wenn Sie eine neue Version von
dotnet
sdk installieren , trifft es diePATH
.quelle
Wenn der obige Befehl einen Fehler anzeigt, gehen Sie bitte wie folgt vor.
Hinweis: Es hat bei .Net Core 3.0 funktioniert
quelle
In Bezug auf die Pfadkorrektur:
Beachten Sie, dass dadurch der Pfad zum Benutzerpfad und nicht zur Umgebungsvariablen Systempfad hinzugefügt wird. Beim Auslösen einer "Developer Command Prompt" oder "Developer Powershell" aus Visual Studio wird keine Benutzerpfadvariable verwendet. Sie müssen es auch zur Systemumgebungsvariablen hinzufügen.
Außerdem müssen Sie VS neu starten, bevor die Änderung wirksam wird.
quelle
Für alle, die mit diesem Problem auf Jetbrains Rider zu kämpfen haben, habe ich alle auf dieser Seite aufgeführten Lösungen ausprobiert und bin schließlich zu VS gegangen und habe dort den Befehl dotnet tool install --global dotnet-ef --version 3.0.0 ausgeführt und dann in Rider und erneut geöffnet es funktionierte.
quelle
Dies ist auf Aktualisierungen in .NET Core 3 zurückzuführen, bei denen dotnet ef aus .NET Core entfernt und zu einem separaten Paket gemacht wurde.
1-Sie müssen dem PATH% USERPROFILE% .dotnet \ tools hinzufügen.
2-Wenn nicht vorhanden, führen Sie diesen Befehl aus
dotnet tool install -g dotnet-ef
quelle
Ich hatte das gleiche Problem unter Ubuntu 20.04.1 mit dem .net Core 5.0.0-rc.1 und die Lösung, die für mich funktionierte, bestand darin, das
dotnet ef
als lokales Tool zu installierenhttps://docs.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-local-tool
dotnet new tool-manifest dotnet tool install dotnet-ef --version 5.0.0-rc.1.20451.13
quelle
TL & DR :
dotnet tool install -g dotnet-ef
Begründung : In der Ankündigung zu ASP.NET Core 3 Preview 4 wird erläutert, dass dieses Tool nicht mehr integriert ist und eine explizite Installation erfordert.
Referenz : https://devblogs.microsoft.com/dotnet/announcing-entity-framework-core-3-0-preview-4/
quelle