97 votes

Impossible de trouver la commande 'dotnet ef'.

J'utilise .NET Core 2.0 sur Arch Linux / Visual Studio Code et j'essaie d'obtenir EF pour fonctionner, mais je continue à obtenir l'erreur :

Impossible de trouver la commande dotnet ef

J'ai cherché partout et aucune des suggestions n'a fonctionné.

Le résultat de l'exécution de '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]$

Voici le résultat de 'dotnet --info', si cela peut vous aider :

[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

Voici mon fichier .csproj :

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

1 votes

Est ~/.dotnet/tools dans votre $PATH ?

0 votes

@OmairMajid thaaanks it worked !!!!! vous êtes le vrai MVP homme. Si vous le postez comme réponse, je l'accepterai.

0voto

Shahbaz Umer Points 1

Ceci est dû aux mises à jour effectuées dans .NET Core 3 en supprimant dotnet ef de .NET Core et d'en faire un paquet séparé.

  1. Vous devez ajouter %USERPROFILE%.dotnet. \tools à la PATH.

  2. Si elle n'existe pas, alors exécuter cette commande :

    dotnet tool install -g dotnet-ef

0voto

Rishu Ranjan Points 198

Pour moi, le fait de fermer la solution et de redémarrer Windows a résolu le problème. Mais avant cela, nous devons suivre les étapes ci-dessous pour vérifier si l'installation s'est faite correctement ou non.

  1. Exécutez la commande ci-dessous. Si vous ne voyez pas dotnet-ef, passez à l'étape 2, sinon, passez à l'étape 3.

    dotnet tool list --global
  2. Aller vers le chemin, %USERPROFILE%\.dotnet\tools et vérifier si dotnet-ef est là ou pas. Si ce n'est pas le cas, vous devrez peut-être exécuter

    dotnet tool install --global dotnet-ef --version 3.1.4

    Je crois que vous l'avez déjà fait.

  3. Ajoutez ce chemin %USERPROFILE%\.dotnet\tools à vos variables d'environnement, pour voir si vous l'obtenez dans votre projet ou non.

  4. Enfin, vous devez fermer votre projet et redémarrer la fenêtre. Dans mon cas, cette étape a résolu le problème.

0voto

Maciej Klimas Points 1

Avec EF Core 6.0, nous pouvons générer Packs EF - MSDN

Cela résout le problème ci-dessus, le bundle peut être exécuté comme un fichier exécutable normal et appliquera les migrations. Assurez-vous simplement que vous avez votre appsettings.json o secrets.json si vous utilisez le paquet UserSecrets avec le binaire généré.

user@shell~$ ./efbundle

PS> efbundle.exe

Projet --project y --startup-project peut également être spécifié comme pour les migrations régulières

PS> dotnet ef migrations bundle --self-contained -r linux-x64 --project .\MyApp.Shared  --startup-project .\MyApp.ApiClient

Je pense que nous devrions également être en mesure de spécifier --connection your_connection_string ici mais je n'ai pas essayé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X