web-dev-qa-db-fra.com

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

J'utilise ce MSDN Tutorial pour exécuter dans VS2015 la commande PM> Add-Migration MyFirstMigration -context BloggingContext exécutée avec succès hier, mais aujourd'hui, l'erreur suivante 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 SQL Express 2014 on Win 8.1 mais la même erreur. Même si je lance Add-Migration MyFirstMigration j'obtiens 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 de VS2015 - Mise à jour 3 publiée le 27 juin 2016.

METTRE À JOUR

Les commandes suivantes fonctionnent correctement à partir du répertoire du projet dans l'explorateur de Windows lors de l'utilisation de la fenêtre de commande:

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

UPDATE 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%" ]
  }
}
31
nam

Essayez les étapes suivantes:

1) Ouvrir le fichier project.json et Supprimer toutes les références Microsoft.EntityFrameworkCore.Tools des sections dependencies et tools.

2) Fermer Console du gestionnaire de packages (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 encore une fois Visual Studio 2015

6) Ouvrez le PMC et tapez

Add-Migration $Your_First_Migration_Name$

Cela est dû au fait que PMC reconnaît les outils au démarrage de Visual Studio.

36
Gianpolo

Assurez-vous que Microsoft.EntityFrameworkCore.Tools est référencé dans la section dependencies de votre project.json. NuGet ne chargera pas les commandes du gestionnaire de packages à partir de la section tools. (Voir NuGet/Home # 3023 )

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

même problème ... résolu par dong les suivants

1.) Fermez pm manager 2.) Fermez Visual Studio 3..) Ouvrez Visual Studio 4..) Ouvrez pm manager.

semble que l’astuce consiste à fermer PM Manager avant de fermer VS

9
Bhail

J'ai juste eu ce problème aussi. J'ai fermé et ouvert VS2015 et il a "résolu" le problème ...

7
Josh

Ce que je devais faire ...

1) Outils -> Gestionnaire de paquets Nuget -> Paramètres du gestionnaire de paquets

2) Onglet Général

3) Effacer tous les caches NuGet

4) Redémarrez Visual Studio

5
Justin McConnell

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

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

5
David Sopko

Vous devez savoir quelle est votre version Entity-Framework . Après cela, vous devez vérifier project.json et contrôler ces sections:

Dans Dépendances

vérifier:

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

Cette section:

"version": "1.0.0-preview2-final",

est lié à la version de votre Entity-Framework et vous devez changer cela avec cela.

Après cela, la deuxième section du proj.json est ici. Dans la section Tools de JSON, vous avez:

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

De plus, cette partie du code est liée à votre Entity-Framework et à la dernière partie du code dans Dependencies section.

Remarque: Après cela, vous devez fermer CMD et redémarrer Visual Studio.

5

Essayez simplement init Microsoft.EntityFrameworkCore.Tools . Dans PM 

C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.

Cela m'a aidé avec le même problème ... Une version des outils pourrait être différente. Cela dépend de ce que vous utilisez dans votre projet.

4
trueboroda

C'est si simple.

Installez simplement le package Microsoft.EntityFrameworkCore.Tools à partir de nuget:

Package d'installation Microsoft.EntityFrameworkCore.Tools -Version 2.1.3

Vous pouvez également utiliser ce lien pour installer la dernière version: Lien vers le package Nuget

2
Nasir Jafarzadeh

J'ai eu le même problème et j'ai constaté qu'il s'agissait d'un problème de versioning de Visual Studio dans le fichier de solution.

Je visais: 

VisualStudioVersion = 14.0.25123.0

Mais je devais cibler: 

VisualStudioVersion = 14.0.25420.1

Après avoir modifié directement le fichier de solution, les applets de commande EF Core ont commencé à fonctionner dans la console du gestionnaire de packages.

2
Joel Waymack

J'ai rencontré le même problème. La plupart de mes projets avaient la même chose dans les outils.

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}

Cela a bien fonctionné sur tous les projets sauf un. J'ai changé l'entrée dans les outils en

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

Et puis couru dotnet restore. Une fois la restauration terminée, Add-Migration a fonctionné normalement.

2
smulholland2

J'ai eu ce problème et aucune des solutions précédentes ne m'a aidé. Mon problème était en fait dû à une version obsolète de powershell sur ma machine Windows 7 - une fois mis à jour vers powershell 5, il a commencé à fonctionner.

1
Lee Cordell

Accédez à la console du gestionnaire de paquets (dans Visual Studio) et exécutez la commande ci-dessous. 

C:\Users\<YOUR_USER>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\<YOUR_INSTALLED_VERSION>\tools\init.ps1

1
Shivendra

Ce sont les étapes que j'ai suivies et cela a résolu le problème

1) Mise à niveau de mon Power Shell de la version 2 à la version 3

2) Fermez la console PM

3) Visual Studio redémarré

4) Exécutez la commande ci-dessous dans la console PM restauration dotnet

5) Add-Migration InitialMigration

Ça a marché !!!

1
Karthik

Je pense que la réponse doit être mise à jour en 2017, car les États membres ont apporté des modifications (radicales) qui sont détaillées ici.

https://github.com/aspnet/EntityFramework/issues/7053

Pour résumer, vous aurez maintenant besoin d'une référence à EntityFrameWorkCore.Tools.DotNet dans la section Outils, comme ci-dessous.

"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"

J'ai également posté un fichier de travail project.json ci-dessous au cas où certains rencontreraient des problèmes.

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.Extensions.Configuration.Json": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
  },

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

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

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

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}
0
Francis

J'ai essayé de faire tout ce qui précède et pas de chance. J'ai téléchargé le dernier package .net core 2.0 et exécuté les commandes à nouveau.

0
Tyrone Moodley