web-dev-qa-db-fra.com

CommandNotFoundException Enable-Migrations de la console du gestionnaire de packages uniquement dans un projet VS spécifique

J'ai essayé d'exécuter la commande 'Enable-Migrations' dans un nouveau projet et j'ai reçu le message suivant:

PM> Enable-Migrations
The term 'Enable-Migrations' 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, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<< 
    + CategoryInfo          : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Mais dans tous les autres projets, la commande fonctionne parfaitement.

Pourquoi cela arrive-t-il?

BTW, j'utilise VS2010 Professional SP1

EDIT: J'ai réinstallé avec la commande: Install-Package EntityFramework --IncludePrerelease et le problème a disparu.

106
Eduardo Brites

J'ai réinstallé avec la commande: Install-Package EntityFramework -IncludePrerelease et le problème a disparu.

75
Eduardo Brites

Simplement redémarrer Visual Studio a fonctionné pour moi. Pas besoin d'installer des paquets, etc.

82
Donal

Ce problème se produit car Entity Framework n'est pas installé. Veuillez installer Entity Framework à l’aide de la commande ci-dessous.

Install-Package EntityFramework -IncludePrerelease

Une fois installé, choisissez le projet dans la liste déroulante Projet par défaut de la console Gestionnaire de paquets.

Assurez-vous qu'au moins une classe de votre projet hérite du contexte de données, sinon utilisez la classe ci-dessous:

public class MyDbContext : DbContext
    {
        public MyDbContext()
        {
        }
    }

Si nous ne le faisons pas, nous aurons une autre erreur:

No context type was found in the Assembly

Après avoir terminé ces choses, vous pouvez courir

enable-migrations
20
Lijo

Le redémarrage de Visual Studio avec le privilège administrateur a résolu le problème pour moi.

16
Satchi

Assurez-vous que vous exécutez Visual Studio en tant qu'administrateur.

13
jackncoke

D'abord, "Install-Package EntityFramework -IncludePrerelease", puis le redémarrage de Visual Studio en tant que administrateur a fonctionné pour moi ensemble.

9
Uzay

J'ai eu le même problème avec VS 2019 Preview, .Net Core et EntityFramework Core.

Il s'avère que je devais installer via NuGet Microsoft.EntityFrameworkCore.Tools et Microsoft.EntityFrameworkCore.Design. Une fois que cela a été fait, cela a fonctionné comme un charme.

3
Jean-David Lanz

Dans Visual Studio 2012, j'ai eu la même erreur. A dû désinstaller NuGet (Outils> Extensions et mises à jour> Installé> Tout: Gestionnaire de package NuGet: bouton Désinstaller). Puis fermé Visual Studio. Rouvrez ensuite Visual Studio et réinstallez NuGet (Outils> Extensions et mises à jour> En ligne> Galerie Visual Studio: Gestionnaire de packages NuGet: bouton Télécharger). Puis dans les fenêtres suivantes: cliquez sur le bouton Installer, puis sur le bouton Fermer. Fermez puis rouvrez Visual Studio.

3
mee

J'ai eu le même problème et j'ai essayé la plupart de la solution fournie par d'autres personnes, mais cela a fonctionné pour moi avec les étapes ci-dessous. J'ai VS 2017.

Pas:

Install-Package EntityFramework -IncludePrerelease

puis créer une classe en tant que

public class MyDBContext : DbContext { public MyDBContext() { } }

et à la dernière exécution

Enable-Migrations -EnableAutomaticMigrations

Ce qui n'a pas fonctionné pour moi:

: Redémarrage de VS.

: seulement la commande "Enable-Migrations", qui est sans -EnableAutomaticMigrations.

: restauration ou mise à jour du gestionnaire de paquets Nuget.

Mon erreur initiale au début était

/ * Le terme 'enable-migration' 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 caractère: 1 + activation-migration + ~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /

2
ironman

Ce qui a résolu ce symptôme pour moi (VS2013) est de désinstaller puis de réinstaller le paquet EF avec Nuget. La différence dans le fichier csproj a changé cela ...

<Reference Include="EntityFramework">
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

... dans cette ...

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>

Je ne comprends pas vraiment pourquoi, mais ça a fonctionné au moins.

2
biscuit314

Dans .NET Core, j'ai pu atteindre la même résolution que celle décrite dans la réponse acceptée, en entrant les informations suivantes dans la console du gestionnaire de packages:

Install-Package EntityFramework.Core -Pre
2
ne1410s
  1. Installez la structure Entity dans le projet actuel à l'aide de la commande ci-dessous: PM> Install-Package EntityFramework -IncludePrerelease

  2. Ajoutez une classe "MyDBContext" dans le dossier Model comme indiqué ci-dessous:

    classe publique MyDBContext: DbContext {Public MyDBContext () {}}

  3. Activez maintenant les migrations pour le projet actuel avec la commande ci-dessous: PM> enable-migrations

1
snowblindzz

Comme j'avais déjà un dossier de migration, j'ai redémarré Visual Studio et exécuté Update-Database -verbose dans la console du gestionnaire de packages. Cela a fonctionné pour moi

1
depcka

J'ai eu le même problème et j'ai constaté que c'est à cause de caractères dans le chemin du projet comme [ou] je corrige le chemin du projet et cela a bien fonctionné!

1
pixparker

Enable-Migrations -EnableAutomaticMigrations

1
chandudab

J'ai essayé toutes les suggestions ci-dessus, mais rien n'a fonctionné pour moi, puis j'ai mis à jour Nuget Package Manager et ça a marché ..

1
Reyan Chougle

Vérifiez si la section de configuration "entityFramework" existe et décrite dans votre fichier .config

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.Microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>

        <entityFramework>
            <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
            <providers>
                <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
            </providers>
        </entityFramework>
0
KiriK

Dans VS 2013, essayez d'installer UPDATE 1(RC1) et le problème est résolu.

0
Danilo Breda

Aucune de ces solutions n'a fonctionné pour moi. Ma solution était de supprimer packages/EntityFramework.6.1.3 et Restore NuGet Packages

J'ai remarqué ça packages/EntityFramework.6.1.3/tools/EntityFramework.psd1 était manquant, c’était donc une cause probable. Comment cela a été enlevé en premier lieu alors que je n'ai aucune idée.

0
Cameron Aavik

exécuter en tant qu'administrateur vs = >> open opneproject

enabele-migration
add-migration migrationName
update-database
0
jamaljaj

J'avais plusieurs projets dans la solution, mais j'avais le jeu de projets par défaut correct, alors j'ai pensé que cela devrait fonctionner.

Finalement, j'ai dû ajouter le -StartupProject MyProjectName option à la commande

0
L_7337