web-dev-qa-db-fra.com

Erreur "Aucun exécutable trouvé correspondant à la commande dotnet-ef" avec la base de données EF Core en premier

Comme vous le savez, la dernière version de Visual Studio 2017 abandonne le 'project.json' et utilise .csproj au lieu.

J'utilise la version RTM et je veux générer un modèle à partir d'une base de données existante, en suivant ce guide . J'ai eu une erreur à la dernière étape:

Les commandes Entity Framework Core pour la console du gestionnaire de packages ne prennent pas encore en charge les projets .NET Core basés sur csproj. Utilisez plutôt les outils de ligne de commande .NET (c'est-à-dire dotnet ef). Pour plus de détails, voir https://go.Microsoft.com/fwlink/?linkid=834381 .

Suite à l'erreur, j'ai utilisé le lien mentionné pour passer à dotnet ef. Voici ma commande de gestionnaire de packages:

PM> dotnet ef dbcontext scaffold "Server = .; Database = Jumpstart; Trusted_Connection = True;" Microsoft.EntityFrameworkCore.SqlServer

Ensuite, l'erreur revient:

dotnet: aucun exécutable trouvé correspondant à la commande "dotnet-ef"

J'ai utilisé la commande d'aide, j'ai trouvé que dotnet n'a pas de commande appelée ef.

Je veux juste générer un modèle à partir d'une base de données existante.

16
even

Suivez ce tutoriel

https://docs.Microsoft.com/en-us/aspnet/core/data/ef-mvc/migrations

J'ai eu le même problème. Je viens de modifier la section ItemGroup dans . Csproj comme ceci

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>
19
PROTOCOL

La réponse acceptée est la cause la plus probable du message d'erreur. Cependant, en plus d'ajouter la référence appropriée dans le fichier .csproj Également assurez-vous que le répertoire actuel de Package Manager Console Pointe vers le projet ASP.NET Core, sinon tout dotnet ef échouera avec l'erreur mentionnée dans le titre OP.

5
Alexei

Mon problème a été résolu en remplaçant tools par:

"tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.1.0-preview4-final"
  },

Exécutez ensuite ces 2 commandes:

  1. dotnet restore - pour restaurer des packages
  2. migrations dotnet ef
3
etrupja

J'ai résolu le problème

dans toutes les réponses mentionné l'ajout d'outils DotNet mais pas résolu mon problème car j'ai manqué une commande que je mentionne ci-dessous

Les outils de ligne de commande EF Core .NET sont installés en modifiant manuellement le fichier * .csproj.

Ajoutez Microsoft.EntityFrameworkCore.Tools.DotNet en tant que DotNetCliToolReference. Voir l'exemple de projet ci-dessous.

<ItemGroup>
   <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
</ItemGroup>

pour la version principale 2 a changé la version mais après cela devrait également exécuter 2 commandes

puis importation d'une partie dans toutes les réponses manquantes (cette commande a résolu mon problème dans visuall studio 2017)

1 - Exécutez dotnet add package Microsoft.EntityFrameworkCore.Design

2 - Exécutez dotnet restore. Si la restauration échoue, les outils peuvent ne pas s'être installés correctement.

plus d'informations https://docs.Microsoft.com/en-us/ef/core/miscivers/cli/dotnet

2

Sur NetCore 2.0, il vous suffit d'exécuter Add-Migrations.

Il vous demandera un nom et c'est tout. Assurez-vous simplement que vous disposez d'une chaîne de connexion par défaut sur appsettings.json

0
Federico Calvagna