Aucun exécutable correspond à la commande “dotnet-ef”
Je suis en train de faire un projet par exemple à l'aide de ASP.Net Core RC2 avec Microsoft.EntityFramework.Core
et SQLite.
J'ai suivi ce tutoriel:
https://damienbod.com/2015/08/30/asp-net-5-with-sqlite-and-entity-framework-7/
Mais, quand je lance cette commande :
dotnet ef migrations add FirstMigration
J'ai eu cette erreur :
No executable found matching command "dotnet-ef"
Voici mon project.json
configuration:
{
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.0-rc2-3002702",
"type": "platform"
},
"Microsoft.AspNetCore.Mvc": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0-rc2-final",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
"Microsoft.Extensions.Logging.Debug": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore": "1.0.0-rc2-final",
"Microsoft.EntityFrameworkCore.Sqlite": "1.0.0-rc2-final"
},
"tools": {
"Microsoft.AspNetCore.Server.IISIntegration.Tools": {
"version": "1.0.0-preview1-final",
"imports": "portable-net45+win8+dnxcore50"
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"dnxcore50",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"gcServer": true
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
"scripts": {
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
- Cette annonce montre comment votre projet.json devrait ressembler à la RC2 si vous utilisez des outils: github.com/aspnet/Announcements/issues/172
Vous devez vous connecter pour publier un commentaire.
Entity Framework Core 1.0
Vous devez juste besoin de mettre à jour le
tools
section de votre projet.fichier json pour inclure ceci:Cela devrait rendre la
dotnet ef
commandes disponibles.Important
Je tiens également à noter ici que la
dotnet ef
commandes ne sont disponibles que lorsque les exécuter à partir du même répertoire qui contient le projet.fichier json.Entity Framework 1.1
Si vous rencontrez ce problème après la mise à niveau de l'Entité Framework 1.1, assurez-vous de remplacer le
Microsoft.EntityFrameworkCore.Tools
de dépendance avecMicrosoft.EntityFrameworkCore.Tools.DotNet
version1.1.0-preview4
. Il n'est pas nécessaire de garder leimports
section, soit. Pour plus d'informations, consultez la section "mise à niveau vers 1.1" de la rubrique la Entity Framework version 1.1 de l'annonce post de blog.project.json
était mon problème, merci!Entity Framework 1.1
Ajouter sur ce si vous utilisez VS2017 avec la nouvelle .csproj projets sans projet.fichier json
vous avez besoin de modifier l' .csproj fichier (clic droit dans l'explorateur de solutions, puis cliquez sur modifier quoi que ce soit.csproj) et collez cette
courtoisie de : https://github.com/aspnet/EntityFramework/issues/7358#issuecomment-278379967
VS2017
et automatiquement mis à jourdotnet core CLI
à2.0
version qui n'est pas compatible avecdotnet core 1.0
. Mais il semble que c'est le temps que je dois mettre à jour mon projet.net core 1.0
à2.0
.Spécifiques à VS2017 15.3 ou plus et ASP.NET CORE 2.0 ou plus tard...
Installer nuget pour db fournisseur via la ligne de commande ou gestionnaire de package nuget.
Ajouter la section suivante .csproj
Installer moment de la conception des outils via la ligne de commande ou à nuget manager dans VS2017.
Cela permet dotnet ef * à la ligne de commande dans le répertoire du projet.
Permet dotnet ef * commandes sur la ligne de commande dans le répertoire du projet,
DotNetCliToolReference
avec des Outils.DotNet était la clé dans mon casC'est un problème courant lors de la commutation d' .NET Core 1.0 .NET de Base 1.1+ ou 2.x.
Pour corriger cela, vous devez:
project.json
(par .NET Core 1.0) ou<projectName>.csproj
(par .NET de Base 1.1+ & 2.x) fichier de configuration du projet.Plus précisément, pour .NET Core 1.0 projets, ajoutez ceci:
Pour .NET de Base 1.1+ et .NET Core 2.x projets, ajoutez ceci:
Si vous avez déjà un
tools
json clé ou un<ItemGroup>
élément avec une ou plusieursDotNetCliToolReference
éléments, il suffit d'ajouter de nouvelles pour le groupe existant.IMPORTANT: d'effectuer les étapes ci-dessus, vous devez lancer l'
dotnet ef
de commande dans le dossier racine du projet (celui contenant le fichier de projet), sinon ça ne marchera pas.Pour plus d'info et une explication détaillée du problème que vous pouvez en lire plus sur mon blog.
C:\Program Files\dotnet
dans la variable d'environnement PATH, OU en utilisant le chemin d'accès complet, c'est à direC:\Program Files\dotnet\dotnet.exe
Je pense avoir trouvé la solution Exacte pour le problème - dotnet : Non exécutable correspond à la commande "dotnet-ef"..
Je suis en utilisant la dot net core 2.0 VS 2017 versio 15.5.3
Cette erreur se produit parce que le Nuget est pas en mesure de trouver la fichier de solution sur l'emplacement.
J'ai Déménagé à la racine par l'ajout de la ci-dessous commande sur votre le Gestionnaire de Package Console.
cd .\École1
Ici "École1' était mon répertoire racine du projet, et il contient de mon Démarrage.cs' classe, ce sera différent dans votre cas.
dotnet ef
sur le Gestionnaire de Package Console qui va maintenant fonctionner correctement.Je suis d'erreur Erreur lors de l'exécution de
dotnet ef
.J'ai corrigé l'erreur en déplaçant à la racine du dossier avec la commande
cd .\School1
Espère que cela aide mes collègues Dot Net Développeurs.
J'ai dû ajouter de Microsoft.EntityFrameworkCore.Outils.DotNet de travail. La section outils de votre projet.fichier json ressemblera à ceci:
Si vous avez rencontré ce problème et d'exécuter les asp.net de base avec des outils CLI, vous pouvez le résoudre en ajoutant
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
en xx.fichier csproj, et
.dotnet restore
Ensuite, vous pouvez utiliser dotnet ef commande.
Au lieu d'ouvrir une fenêtre console séparée de VS le Gestionnaire de Package type de Console et exécutez les commandes suivantes:
HTH
MODIFIER: Vous pouvez également besoin de la classe suivante dans votre MVC de projet de base:
J'ai été en utilisant un projet de bibliothèque de classes. Après des tentatives et des échecs de tous les ci-dessus dans le gestionnaire de paquets de la console. J'ai utilisé l'invite de commande, et cela a fonctionné! Bizarre.
Cependant, le crédit va à cet article.
Et si vous êtes à l'aide d'une bibliothèque de classes du projet, Cette est votre solution.
Sous visual studio en 2017, j'nécessaires à l'exécution de ces commandes à partir de la console du gestionnaire de package
Dans la section outils ajouter le code ci-dessous,
Ce format de code résolu mon erreur.
Par défaut lors de l'ajout d'un NuGet Pkg il sera ajouté à la PackageReference, c'est faux, donc l'éditer manuellement
1 - Modifier .fichier csproj
2 - changement de "PackageReference":