web-dev-qa-db-fra.com

Le terme 'scaffold-dbcontext' n'est pas reconnu en tant que nom d'une applet de commande, fonction, fichier de script ou programme utilisable

Lorsque vous essayez d'échafauder avec asp.net core cette commande

scaffold-dbcontext "Source de données = (local); Initial Catalogue = MyDb; Sécurité intégrée = True;" Modèles Microsoft.EntityFrameworkCore.sqlserver -outputdir

Donne cette erreur.

scaffold-dbcontext: le terme 'scaffold-dbcontext' n'est pas reconnu en tant que nom d'une applet de commande, fonction, fichier de script ou programme utilisable . Vérifiez l'orthographe du nom ou, si un chemin a été inclus, vérifiez que le chemin est correct et essayez à nouveau. A la ligne: 1 caractère: 1 + scaffold-dbcontext "Source de données = (local); Catalogue initial = MyDB; In ... + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound : (scaffold-dbcontext: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

J'ai essayé la solution ici , mais cela ne fonctionne pas pour moi.

Une idée de ce que la cause/guérison pourrait être?

13
simon831

Pour moi, apparemment cela a fonctionné une fois que je me suis exécuté dans la console du gestionnaire de packages 

 Install-Package Microsoft.EntityFrameworkCore.Tools 

Assurez-vous également:

  • Pour que d'autres dépendances (par exemple Microsoft.EntityFrameworkCore, Microsoft.EntityFrameworkCore.SqlServer, Microsoft.EntityFrameworkCore.SqlServer.Design ...) soient référencées en fonction de vos besoins. 

  • Pour sélectionner la bonne Assemblée en tant que cible pour vos commandes dans le coin supérieur droit de la console PM (je me trompe souvent en l'oubliant ...)

Un autre problème que j'ai rencontré: avec le dbcontext situé dans une bibliothèque de classe séparée, j'ai rencontré l'erreur suivante: 

Impossible de trouver l'assembly du fournisseur avec le nom Microsoft.EntityFrameworkCore.SqlServer. Assurez-vous que le nom spécifié est correct et est référencé par le projet.

Ce que j'ai pu résoudre en définissant ma bibliothèque de classe comme projet Startup dans VS (ne demandez pas pourquoi, mais cela a fonctionné).

21
AFract
  1. Assurez-vous que cela est disponible dans votre fichier project.json "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final". 

 enter image description here

  1. Exécutez la commande dans la console du gestionnaire de packages.

 enter image description here

c'est tout ça va marcher

11
Devanathan.S

Exécutez ces commandes dans Package Manager Console :

Install-Package Microsoft.EntityFrameworkCore.Tools

et

Install-Package Microsoft.EntityFrameworkCore.SqlServer
0
auxjumper

J'ai récemment rencontré une autre cause de cette erreur: NuGet était obsolète.

La mise à jour de NuGet a résolu le problème.

Si la réponse de Devanathan ne vous convient pas, assurez-vous que NuGet est à jour.

0
Brian Swift