175 votes

Le terme "Add-Migration" n'est pas reconnu.

J'utilise ceci Tutoriel MSDN pour exécuter dans VS2015 la commande PM> Add-Migration MyFirstMigration -context BloggingContext qui s'est exécuté hier avec succès mais aujourd'hui il donne l'erreur suivante qui est également signalée par d'autres utilisateurs ici . J'ai même supprimé le dossier Migrations de l'explorateur de solutions et la base de données correspondante de l'explorateur de solutions. SQL Express 2014 on Win 8.1 mais même erreur. Même si j'exécute Add-Migration MyFirstMigration Je reçois la même erreur :

Add-Migration : The term 'Add-Migration' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Add-Migration MyFirstMigration -context BloggingContext
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Note : J'utilise la dernière version d'ASP.NET Core 1.0 et VS2015 - Update 3 publié le 27 juin 2016.

UPDATE

Les commandes suivantes fonctionnent bien à partir du répertoire du projet dans l'explorateur Windows en utilisant la fenêtre de commande :

> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext

MISE À JOUR 2a

Voici le fichier project.json :

{
  "userSecretsId": "aspnet-ASPCore_RTM_CodeFirst_test-bef835d9-9831-41a8-bc3a-cd2f1477a880",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": {
      "version": "1.0.0",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

0 votes

S'il vous plaît, n'insérez pas de tags dans le titre

0 votes

Écrivez s'il vous plaît votre project.json je veux voir vos paquets

0 votes

@BassamAlugili par votre demande, j'ai ajouté un UPDATE 2 dans mon post pour ajouter la section pertinente du fichier peoject.json. S'il vous plaît laissez-moi savoir si vous avez besoin de plus d'informations

52voto

Gianpolo Points 616

Essayez les étapes suivantes :

1) Ouvrir project.json et Retirer toutes les références Microsoft.EntityFrameworkCore.Tools à partir de Dépendances et outils sections.

2) Fermer Console du gestionnaire de paquets ( PMC ) et redémarrer Visual Studio

3) Ajouter sous Dépendances section :

 "Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
 }

4) Ajouter sous outils section

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"

5) Redémarrer à nouveau Visual Studio 2015

6) Ouvrir le site PMC et le type

Add-Migration $Your_First_Migration_Name$

Cela se produit parce que le PMC reconnaître les outils au démarrage de Visual Studio.

6 votes

Je peux à peine passer une heure de codage sur VS2015 sans que quelque chose doive être redémarré/réinstallé....

43voto

bricelam Points 3757

Assurer Microsoft.EntityFrameworkCore.Tools est référencé dans le dependencies de votre project.json . NuGet ne chargera pas les commandes du gestionnaire de paquets à partir de l'application tools section. (Voir NuGet/Home#3023 )

{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  }
}

2 votes

J'ai copié l'intégralité du contenu du fichier project.json dans la MISE À JOUR 2 de mon message. Le site Microsoft.EntityFrameworkCore.Tools se trouve également dans la section des dépendances. Le site Add-Migration et Update-Database comme indiqué dans le tutoriel, ont fonctionné la veille. Mais lorsque je les ai essayées le lendemain matin après avoir apporté des modifications mineures à mon modèle et que j'ai réessayé ces commandes, elles ont donné le message d'erreur décrit dans mon post. J'ai même supprimé le dossier Migration et la base de données correspondante du serveur SQL mais j'ai obtenu le même message d'erreur après avoir exécuté ces commandes. Qu'est-ce qui peut m'échapper ?

0 votes

Je présente également les symptômes suivants. J'utilise Visual Studio 2015 Update 3

0 votes

Essayez déposer un bogue sur NuGet avec des étapes reproductibles et de nombreuses informations sur l'environnement. J'ai mentionné des problèmes dans ce domaine à l'équipe, mais ils ne sont jamais capables de les reproduire.

14voto

Bhail Points 425

Même problème... résolu en faisant ce qui suit

1.) fermer le gestionnaire de pm 2.) fermer Visual Studio 3.) Ouvrir Visual Studio 4.) Ouvrir le gestionnaire de pm

Il semble que l'astuce consiste à fermer PM Manager avant de fermer VS.

0 votes

Oui, recharger PM et VS est une solution, cela se produit lorsque nous ouvrons un projet dans le dernier Visual Studio qui a été précédemment créé dans l'ancien. En ouvrant un tel code, VS tente quelques ajustements automatiques. Ces ajustements peuvent être vus correctement effectués, seulement en redémarrant PM et VS.

10voto

Josh Points 357

Je viens d'avoir ce problème aussi. J'ai fermé et ouvert VS2015 et cela a "réglé" le problème...

5voto

David Sopko Points 173

J'ai rencontré ce problème dans Visual Studio 2013. J'ai réinstallé NuGet Package Manager :

https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013

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