L'expression "ajouter-Migration" n'est pas reconnue

j'utilise ce tutoriel MSDN pour exécuter dans VS2015 la commande PM> Add-Migration MyFirstMigration -context BloggingContext qui a fonctionné hier avec succès mais aujourd'hui il donne l'erreur suivante qui est également souligné par d'autres utilisateurs ici . J'ai même supprimé le dossier Migrations de solution explorer et le db correspondant de SQL Express 2014 on Win 8.1 mais la même erreur. Même si j'exécute 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 de ASP.NET Core 1.0 et VS2015-mise à jour 3 publiée le 27 juin 2016.

mise à JOUR

les commandes suivantes fonctionnent bien à partir du répertoire du projet dans l'Explorateur de windows lorsque vous utilisez la fenêtre de commande:

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

mise à JOUR 2a

ci-dessous est le projet.dossier 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%" ]
  }
}
26
demandé sur Community 2016-07-03 22:05:50

15 réponses

essayez les étapes suivantes:

1) Ouvrir project.json fichier et Supprimer Tout Microsoft.Entiteframeworkcore.Références d'outils des sections dépendances et outils .

2) Fermer Gestionnaire de paquets de la Console ( 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) Ouvrir le PMC et de type

Add-Migration $Your_First_Migration_Name$

cela se produit parce que le PMC reconnaître les outils lorsque Visual Studio démarre.

34
répondu Gianpolo 2017-10-04 23:47:36

S'assurer que Microsoft.EntityFrameworkCore.Tools est référencé dans la section dependencies de votre project.json . NuGet ne chargera pas les commandes Package Manager de la section tools . (Voir NuGet / Home#3023 )

{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  }
}
15
répondu bricelam 2016-07-04 04:16:40

je viens d'avoir ce problème aussi. J'ai fermé et ouvert VS2015 et il a "corrigé" le problème...

6
répondu Josh 2017-03-10 19:50:33

j'ai eu ce problème dans Visual Studio 2013. J'ai réinstallé le Gestionnaire de paquets NuGet:

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

5
répondu David Sopko 2017-01-28 17:19:37

même numéro...résolu par dong le suivant

1.) fermez gestionnaire de projets 2.) fermer Studio visuel 3.) Open Visual Studio 4.) Open pm manager

semble que l'astuce est de fermer Gestionnaire de PM avant de fermer VS

5
répondu Bhail 2017-06-12 11:09:02

ce que j'avais à faire...

1) Outils -> Package Nuget Crèche -> Gestionnaire De Paquets Paramètres

2) Onglet Général

3) Effacer tout le(S) Cache (s) NuGet

4) Redémarrer Visual Studio

5
répondu Justin McConnell 2017-07-07 19:53:42

essayez Microsoft.Entiteframeworkcore.Outils. Dans PM, exécuter

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

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

4
répondu trueboroda 2017-03-28 19:33:50

j'ai eu le même problème et j'ai trouvé qu'il s'agissait d'un problème de version Visual Studio dans le fichier Solution.

Je ciblais:

VisualStudioVersion = 14.0.25123.0

mais je devais cibler:

VisualStudioVersion = 14.0.25420.1

après avoir effectué ce changement directement dans le fichier Solution, EF Core cmdlets a commencé à travailler dans la Console du Gestionnaire de paquets.

2
répondu Joel Waymack 2016-07-08 12:42:11

j'ai rencontré le même problème. La plupart de mes projets avaient la même chose en 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 Outils en

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

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

2
répondu smulholland2 2016-08-01 21:12:05

j'ai eu ce problème et aucune des solutions précédentes m'ont aidé. Mon problème était en fait dû à une version périmée de powershell sur ma machine Windows 7 - Une fois que j'ai mis à jour vers powershell 5 il a commencé à fonctionner.

1
répondu Lee Cordell 2017-01-23 17:08:04

ce sont les étapes que j'ai suivi et il a résolu le problème

1)J'ai amélioré mon shell de puissance de la version 2 à 3

2)fermer la Console PM

3) Redémarré Visual Studio

4) exécuté la commande ci-dessous dans la Console PM dotnet restore

5)Add-Migration InitialMigration

ça a marché !!!

1
répondu Karthik 2017-06-07 13:40:54

passez à la console du gestionnaire de paquets (dans visual studio) et exécutez la commande

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

1
répondu Shivendra 2017-06-18 15:03:32

je pense que la réponse doit être mise à jour en 2017, car les États membres ont apporté quelques changements (de rupture) qui sont détaillés ici.

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

pour résumer, vous aurez maintenant besoin d'une référence à Entiteframeworkcore.Outils.DotNet dans la Section Outils comme ci-dessous

"de Microsoft.Entiteframeworkcore.Outils.DotNet": "1.0.0"

j'ai aussi posté un projet de travail.JSON fichier ci-dessous au cas où quelqu'un court dans les 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
répondu Francis 2017-04-19 02:10:27

j'ai essayé de faire tout ce qui précède et pas de chance. J'ai téléchargé le dernier paquet .net core 2.0 et j'ai lancé les commandes à nouveau et ça a marché.

0
répondu Tyrone Moodley 2017-08-15 03:06:57

c'est si simple.

il suffit d'installer Microsoft.EntityFrameworkCore.Tools paquet de nuget:

Install-Package Microsoft.Entiteframeworkcore.Outils-Version 2.1.3

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

0
répondu Nasir Jafarzadeh 2018-09-29 07:29:18