Le terme «Update-Database» n'est pas reconnu comme le nom d'une applet de commande


113

J'utilise EF5 beta1 et alors que j'étais en mesure d'exécuter la "Update-Database" auparavant. Maintenant que j'ai arrêté Visual Studio, je ne peux pas le faire fonctionner. J'obtiens l'erreur suivante:

Le terme «Update-Database» n'est pas reconnu comme le nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme utilisable. Vérifiez l'orthographe du nom ou, si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. À la ligne: 1 car: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

J'ai essayé de réinstaller EF5b1 et bien que cela réussisse (déjà installé), la 'Update-Database' ne fonctionne toujours pas.

Quelqu'un peut-il aider ???


3
Hier, j'ai eu un problème similaire avec une applet de commande différente, et un redémarrage complet du système a aidé ...
nemesv

11
Le redémarrage n'est pas nécessaire. Nous n'exécutons pas de scripts init.ps1 après avoir effectué la restauration du package (c'est pourquoi la commande n'a pas été trouvée). Quittez et redémarrez simplement VS (ou déchargez / rechargez le projet).
RickAndMSFT

1
Cela m'est arrivé aujourd'hui. J'ai ouvert un dépôt pour un projet d'équipe et il fallait restaurer certains packages. Après la restauration, les commandes update-databaseet add-migrationne fonctionneraient pas. Le redémarrage de Visual Studio l'a corrigé.
jmbertucci

Réponses:


169

J'ai eu ce problème un certain nombre de fois ces derniers temps. J'ai trouvé que la solution qui fonctionnait était de fermer la console du gestionnaire de packages, de fermer Visual Studio, puis de les rouvrir. Le redémarrage a également fonctionné la plupart du temps, mais pas toujours.


7
En général, il vous suffit de quitter le redémarrage de VS. Voir mes commentaires dans la question initiale. En de rares occasions, vous devrez peut-être quitter / redémarrer VS deux fois.
RickAndMSFT

1
Je viens de faire face au problème et redémarré Visual Studio et les choses fonctionnaient à nouveau. Merci.
Shubh

Merci pour une solution efficace, sinon merdique. Cela semble être tout ce qui fonctionne sur un million de choses que j'ai essayées.
ProfK

1
Oui bien sûr. Telle est la solution. Solution légitime. Merci Microsoft!
Khateeb321

2
J'ai installé "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" sur mes projets de données et "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" sur mon projet Web principal, qui a résolu le problème pour moi.
HaBo

51

Si vous utilisez Entity Framework:

Message d'erreur: "Message d'erreur (de la commande Update-Database dans PMC): Le terme 'Update-Database' n'est pas reconnu comme le nom d'une applet de commande, d'une fonction, d'un fichier de script ou d'un programme utilisable. Vérifiez l'orthographe du nom , ou si un chemin a été inclus, vérifiez que le chemin est correct et réessayez. "

Solution: «Quittez Visual Studio. Rouvrez le projet et réessayez».

Pour plus d'informations, veuillez visiter: Advanced Entity Framework 6 Scénarios pour une application Web MVC 5 (12 sur 12)

J'espère que cela t'aides...


@AlbatrossCafe Sure :)
Murat Yıldız

1
L'équipe de développeurs VS devrait donner le bouton Refresh VS pour de tels problèmes :)
sohaib javed

@sohaibjaved Pour certains problèmes, le redémarrage de VS ne serait pas suffisant et un nettoyage de répertoire est nécessaire, comme indiqué sur Visual Studio 2015 extrêmement lent . FYI ...
Murat Yıldız

J'ai perdu le compte du nombre de problèmes résolus en redémarrant Visual Studio
EKanadily

21

Parfois, lorsque je charge VS, je vois ceci dans ma console de gestionnaire de paquets:

La valeur ne peut pas être nulle.

Nom du paramètre: chemin1

Je n'ai aucune idée de ce qui cause cela pour le moment, mais il semble que quelque chose ne va pas lors du démarrage de la console Powershell qui interrompt l'enregistrement de modules spécifiques, tels que les extensions EF PowerShell. Cependant, vous pouvez simplement le charger manuellement:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

Assurez-vous de remplacer 6.1.1 par quelle que soit votre version actuelle d'Entity Framework.


4
Je vous remercie! Seule solution qui a fonctionné pour moi. Cependant, pour toute personne utilisant EF 6.1.3 avec VS 2015, il existe un bogue dans EntityFramework.psm1 et un correctif est disponible ici stackoverflow.com/a/30062684/1267778 .
parlement

18

La réinstallation du package nuget a résolu ce problème pour moi

ie, exécuter

Install-Package EntityFramework -Version 5.0.0

dans le gestionnaire de packages


1
Cela fonctionne pour moi. Le projet sur lequel j'ai travaillé utilisait EF et je suppose automatiquement que le package a été installé. Il s'est avéré que ce n'était pas le cas. Le développeur vient de faire référence directement à EF dll. Le package EntityFramework doit être installé dans le projet pour que Update-Database cmd fonctionne.
stack247

Cette réponse semble peu susceptible d'aider, mais elle a sauvé ma journée. Merci,
Nelson Miranda

Lutter avec FK aujourd'hui en utilisant Fluent API, etc. et d'une manière ou d'une autre EntityFramework continue d'être abandonné. Ce qui a fonctionné pour moi dans ce sens, c'est d'en faire un autre Update-Package -Reinstall EntityFramework.
Matt Borja

pour moi, réinstaller et redémarrer. il suffit de réinstaller ne fonctionne pas, et de redémarrer ne fonctionne pas non plus)
RMazitov

9

vous obtiendrez cette erreur lorsque les outils EF ne sont pas installés correctement.

essayez la commande ci-dessous dans le gestionnaire de packages Nuget // Désinstalle et installe la même version d'EF

Update-Package "EntityFramework" -reinstall

Si vous rencontrez toujours le même problème. créez un nouveau projet Web et exécutez la commande ci-dessous dans nuget.

(Remarque: pas besoin de créer le nouveau projet dans la même solution ou au même emplacement.)

// Cela mettra à jour EF vers la dernière version (y compris les outils) // si vous souhaitez utiliser une version spécifique, utilisez l' -versionindicateur.

Update-Package "EntityFramework"

Une fois cela fait, vérifiez votre projet d'origine et vous pouvez supprimer le projet nouvellement créé.


Oui!! Merci =) J'ai seulement installé EntityFramwork, EF.Design, EF.SqlServer et EF.SqlServer.Design.
Janneman96

9

Redémarrez simplement Visual Studio, cela résoudra le problème. Travaille pour moi.


C'est vraiment drôle comment le redémarrage de mon PC fonctionne pour ce problème
Prince Tegaton


4

J'ai eu ce même problème, et l'origine de celui-ci était sur mon nom de chemin, j'avais sur mon chemin un nom de répertoire avec des crochets droits, comme ceci: C:\[PROJ]\TestApp .

Quand j'ai enlevé les crochets, C:\PROJ\TestAppça a commencé à fonctionner très bien ...


Habituellement, il vous suffit de quitter le redémarrage de VS. Voir mes commentaires dans la question initiale.
RickAndMSFT

@RickAndMSFT C'est beaucoup plus proche d'une meilleure solution que de "simplement" redémarrer VS.
ProfK

@Antonio Même moi, j'ai eu le même problème et votre solution a également fonctionné pour moi.
User5590


4

Pour moi, le problème était la version Nuget .

  1. désinstallez Nuget Package Manager.
  2. redémarrez Visual Studio.
  3. installé une nouvelle version de Nuget Package Manager.
  4. puis redémarrez Visual Studio.

1
C'était le cas pour moi mais j'avais juste besoin de mettre à jour nuget dans les extensions et de mettre à jour
Oak

cela a fonctionné pour moi, désinstallé le gestionnaire de paquets nuget, réinstallé le gestionnaire de paquets nuget, redémarré Visual Studio, désinstallé EntityFramework, réinstallé EntityFramework
Rizan Zaky

3

J'ai résolu avec la désinstallation et la réinstallation de "Microsoft.EntityFrameworkCore" et "Microsoft.EntityFrameworkCore.Tools"


1
Si vous utilisez EF Core, c'est la bonne réponse. Ou du moins, le problème pour moi était que ce Microsoft.EntityFrameworkCore.Toolsn'était pas installé.
Kirk Woll

2

Ce problème semble se produire lorsque vous ouvrez le projet directement à partir de l'Explorateur de fichiers. Essayez d'abord de démarrer VS, puis d'ouvrir le projet - cela a fonctionné pour moi. J'imagine qu'il s'agit de l'accès aux chemins.


après avoir redémarré plusieurs fois et ne pas l'avoir résolu, cela a aidé à résoudre mon problème!
Niklas


0

Si les autres réponses ne fonctionnent pas (VS 2017): effacez le cache NuGet, redémarrez VS, puis restaurez les packages.


0

J'ai trouvé que c'était dû à un paquet corrompu. J'avais installé Automapper alors qu'il était déjà installé. Il était clair que ce package était corrompu lorsque j'ai essayé d'installer un autre package.

La suppression du package corrompu a résolu ce problème pour moi.

Vous pouvez ensuite réinstaller l'Automapper. Le problème était avec la version 5.4, je suis maintenant heureux sur 6.0.


0

Pour moi, il s'avère que le noyau EntityFramework n'a pas été installé sur mon projet (car j'ai commencé avec un projet vierge). Ainsi, l'installation du package EntityFramework a résolu le problème. Parfois, si l'installation d'EntityFramework a échoué, essayez d'installer les packages individuels un par un

Par exemple

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

0

J'ai résolu en mettant à jour la console du gestionnaire de package.

Je n'obtenais pas Update-Database dans la console du gestionnaire de package. Ensuite, je redémarre plusieurs fois. Redémarrez également Windows.

Ensuite, j'en télécharge un nouveau à partir de nuget , puis il a été résolu.


0

J'ai eu ce problème dans Visual Studio 2015 et je l'ai résolu en mettant à jour la version de Nuget.

Outils -> Extensions et mises à jour -> Mises à jour -> Galerie Visual Studio


0

Une solution simple pour moi était de m'assurer qu'il y avait un tiret entre la mise à jour et la base de données, comme ceci: update-databaseet d'utiliser des minuscules. Cela peut être une coïncidence, mais lorsque j'ai fait cela dans la console Packet Manager, la base de données a été mise à jour et j'ai reçu le message terminé plutôt que l' not recognized as the name of a cmdlet, function, script fileerreur.


0

J'ai commencé à avoir le même problème après avoir accidentellement ouvert une solution Visual Studio avec Visual Studio 2015 au lieu de 2017. Le projet fonctionnait très bien avant cet incident. C'était un projet plus ancien avec EF 5.0 et non EF Core.

J'ai essayé tout ce qui était suggéré - redémarré Visual Studio d'innombrables fois, nettoyé le cache NuGet, supprimé tout dans le dossier packages, réinstallé EF 5 pour le projet - rien de bon, la migration d'ajout n'était pas reconnue. Si j'ai mis à niveau EF à 6, il a commencé à reconnaître les commandes, mais je ne voulais pas encore mettre à niveau. Ainsi, dès que je suis revenu à EF 5, le problème est revenu.

La seule chose qui m'a finalement sauvé a été de faire ce qui suit:

  • fermer Visual Studio
  • tout supprimer du dossier packages
  • supprimez le dossier .vs à la racine de votre solution. Ce dossier est généralement caché, vous devez activer le paramètre Afficher les fichiers et dossiers cachés ou cocher les éléments cachés dans l'onglet Affichage du dossier
  • démarrez Visual Studio et ouvrez votre solution. Il vous demandera de restaurer les packages NuGet, acceptez-le.

Les commandes EF ont enfin recommencé à fonctionner.


0

Dans mon cas:

  • Le projet de rechargement n'a pas aidé
  • Redémarrer VS n'a pas aidé
  • Le redémarrage de l'ordinateur n'a pas aidé
  • Reinstal EF n'a pas aidé

Mais j'ai trouvé un article dans lequel la suggestion était d'importer manuellement le package EF manquant, en utilisant PM Conole:

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

Et cette solution a résolu mon problème.


0

Dans mon cas, le redémarrage de Visual Studio (de nombreuses fois) n'a pas fonctionné, alors que je cherchais ailleurs, j'ai trouvé un message sur le terminal de sortie:

Le SDK .NET actuel ne prend pas en charge le ciblage de .NET Core 2.2. Ciblez .NET Core 2.1 ou version antérieure ou utilisez une version du SDK .NET qui prend en charge .NET Core 2.2.

J'ai donc installé la version requise de .NET Core et la commande s'est exécutée avec succès.


0

J'ai eu ce problème dans VS 2019 avec un projet existant utilisant EntityFramework 6.3.0. Ce projet a subi d'étranges changements de version sur une période de temps, et rien ne le ferait fonctionner. Je crois que j'ai essayé toutes les suggestions énumérées ici sans succès.

Enfin, la mise à jour à la version préliminaire de EntityFramework (actuellement 6.4.0-preview3-19553-01) a fait résoudre le problème, en exécutant ce dans la console Package Manager: Update-Package EntityFramework -prerelease. J'espère que lorsque cette version sera publiée en direct dans les prochaines semaines, elle fonctionnera correctement.


0

Installez Microsoft.EntityFrameworkCore.Tools a résolu le problème pour moi, utilisé des packages nuget


0

Dans mon cas, j'ai fait ce qui suit: - restauré les packages NuGet manquants en cliquant sur le bouton "Restaurer" en haut de la console du gestionnaire de packages - redémarré Visual Studio - exécuter update-database


-1

Pour moi, le problème était la version Nuget.

J'ai supprimé et réinstallé Nuget, puis redémarré Visual Studio, puis tout a commencé à fonctionner.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.