Package Manager Console Enable-Migrations CommandNotFoundException nur in einem bestimmten VS-Projekt

122

Ich habe versucht, den Befehl 'Enable-Migrations' in einem neuen Projekt auszuführen, und habe die folgende Meldung erhalten:

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

Aber in allen anderen Projekten läuft der Befehl einwandfrei.

Warum passiert dies?

Übrigens verwende ich VS2010 Professional SP1

BEARBEITEN: Ich habe mit dem Befehl Install-Package EntityFramework -IncludePrerelease neu installiert und das Problem ist behoben .

Eduardo Brites
quelle
2
Hallo, bitte fügen Sie Ihre Lösung als Antwort hinzu und markieren Sie sie als akzeptiert (was Sie 2 Tage später tun können), damit sie nicht als unbeantwortete Frage angezeigt wird.
Gert Arnold
1
Ich habe genau das gleiche Problem. Aber keines der Dinge in diesem Thread scheint zu funktionieren. Haben Sie das gesamte Visual Studio neu installiert oder haben Sie diesen Befehl einfach ausgeführt?
ObedMarsh
Ich habe einfach den Befehl ausgeführt ...
Eduardo Brites
2
Leider sind die Ergebnisse dieses Befehls für mich nur "'EntityFramework 6.1.0' bereits installiert". und es gibt immer noch keine Add-Migration oder Enable-Migrationen als gültige Befehle.
Mir
Ich erhalte das Install-Paket: Das Paket 'EntityFramework' konnte nicht gefunden werden. wenn ich Ihre Lösung versuche
Naguib Ihab

Antworten:

85

Das einfache Neustarten von Visual Studio hat für mich funktioniert. Keine Notwendigkeit, Pakete usw. zu installieren.

Donal
quelle
8
Das Neustarten von VS hat auch bei mir funktioniert. Ich bin froh, dass ich dies versucht habe, bevor ich versucht habe, das EntityFramework
SM3RKY
5
Der Neustart funktionierte für Visual Studio 2015. Es ist nicht erforderlich, Pakete zu installieren.
Jonas
5
Ein Hinweis - Ich habe dieses Problem jedes Mal, wenn ich meine Pakete installieren muss (wie ein neuer Repo-Pull). Es sieht so aus, als müsste VS neu gestartet werden, bevor die PM ordnungsgemäß mit den neuen Paketen initialisiert wird (VS Community 2015 Update 1)
Jono
2
Ein neuer Repo Pull hat das auch für mich verursacht. Neustart behoben. (VS Enterprise 2015 Update 2).
Mike Rouse
84

Ich habe mit dem Befehl neu installiert: Install-Package EntityFramework -IncludePrerelease und das Problem ist behoben.

Eduardo Brites
quelle
13
Ich baute meine Lösung und schloss und öffnete VS 2013 und es funktionierte
Luke
Beachten Sie, dass EntityFrameworknur .net Framework 4.0 und 4.5 unterstützt werden. Wenn Sie also .net Framework 4.6 oder höher verwenden, funktioniert dies nicht.
Tân
1
@ TânNguyễn - was ist das? Mein EntityFramework 6.1.3 NuGet funktioniert gut in meinem 4.6.x-Projekt
bkwdesign
Neustart hat es nicht für mich getan, aber das hat es getan.
Robbpriestley
29

Dieses Problem tritt auf, weil Entity Framework nicht installiert ist. Bitte installieren Sie Entity Framework mit dem folgenden Befehl.

Install-Package EntityFramework -IncludePrerelease

Wählen Sie nach der Installation das Projekt in der Dropdown-Liste Standardprojekt der Paketverwaltungskonsole aus.

Stellen Sie sicher, dass mindestens eine Klasse in Ihrem Projekt vom Datenkontext erbt. Andernfalls verwenden Sie die folgende Klasse:

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

Wenn wir dies nicht tun, erhalten wir einen weiteren Fehler:

No context type was found in the assembly

Nachdem Sie diese Dinge erledigt haben, können Sie ausführen

enable-migrations
Lijo
quelle
Hat für mich gearbeitet. Vielen Dank.
Najeeb
Arbeitete heute für mich mit VS 2019.
Perezdr
17

Das Neustarten von Visual Studio mit Administratorrechten hat das Problem für mich behoben.

Satchi
quelle
13

Stellen Sie sicher, dass Sie Visual Studio als Administrator ausführen.

Jackncoke
quelle
1
Ich habe VS als Administrator ausgeführt. Zu der Zeit wusste ich nicht, dass wir das Paket auf jedem Projekt installieren müssen.
Eduardo Brites
12

Ich hatte das gleiche Problem mit VS 2019 Preview, .Net Core und EntityFramework Core.

Es stellte sich heraus, dass ich über NuGet Microsoft.EntityFrameworkCore.Toolsund installieren musste Microsoft.EntityFrameworkCore.Design. Sobald das erledigt war, funktionierte es wie ein Zauber.

Jean-David Lanz
quelle
10

Zuerst "Install-Package EntityFramework -IncludePrerelease" und dann Visual Studio als Administrator neu starten arbeiteten für mich zusammen.

Uzay
quelle
3

In Visual Studio 2012 hatte ich den gleichen Fehler. Musste NuGet deinstallieren (Extras> Erweiterungen und Updates> Installiert> Alle: NuGet Package Manager: Schaltfläche Deinstallieren). Dann Visual Studio geschlossen. Öffnen Sie dann Visual Studio erneut und installieren Sie NuGet neu (Extras> Erweiterungen und Updates> Online> Visual Studio-Galerie: NuGet Package Manager: Schaltfläche Herunterladen). Klicken Sie dann in den folgenden Fenstern auf die Schaltfläche Installieren und dann auf die Schaltfläche Schließen. Schließen Sie dann Visual Studio und öffnen Sie es erneut.

mee
quelle
Dies hat bei mir funktioniert. Ich denke, es ist eine bessere Option, als ein Upgrade auf die Vorabversion zu erzwingen.
OverMars
2

Was dieses Symptom für mich (VS2013) behoben hat, ist die Deinstallation und anschließende Neuinstallation des EF-Pakets mit Nuget. Der Unterschied in der csproj-Datei hat dies geändert ...

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

...das mögen...

<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>

Ich verstehe noch nicht ganz warum, aber es hat zumindest funktioniert.

Keks314
quelle
Ich hatte Probleme mit der Add-Migration / Update-Datenbank usw. Ich habe alle möglichen Lösungen ausprobiert, aber obwohl ich sicher bin, dass ich bereits versucht habe, EF zu deinstallieren und neu zu installieren, hat es nicht funktioniert. Bis jetzt, als es geschah. Dies ist nicht das erste Mal, dass ich Probleme mit EF-Paketen habe. :(
GeoffM
2

In .NET Core konnte ich die gleiche Auflösung wie in der akzeptierten Antwort beschrieben erreichen, indem ich in der Paketmanagerkonsole Folgendes eingab:

Install-Package EntityFramework.Core -Pre
ne1410s
quelle
2

Ich hatte das gleiche Problem und habe den größten Teil der von anderen Leuten bereitgestellten Lösung ausprobiert, aber es hat bei mir mit den folgenden Schritten funktioniert. Ich habe VS 2017.

Schritte:

Install-Package EntityFramework -IncludePrerelease

Erstellen Sie dann eine Klasse als

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

und bei der letzten Ausführung

Enable-Migrations -EnableAutomaticMigrations

Was bei mir nicht funktioniert hat:

: VS neu starten.

: nur Befehl "Enable-Migrations", der ohne -EnableAutomaticMigrations ist.

: Wiederherstellen oder Aktualisieren von Nuget Package Manager.

Mein ursprünglicher Fehler am Anfang war

/ * Der Begriff "Aktivierung aktivieren" wird nicht als Name eines Cmdlets, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder wenn ein Pfad enthalten war, überprüfen Sie, ob der Pfad korrekt ist, und versuchen Sie es erneut. In Zeile: 1 Zeichen: 1 + Aktivierung-Migration + ~~~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /

Ironman
quelle
1

Ich hatte das gleiche Problem und stellte fest, dass es an einigen Zeichen im Projektpfad liegt, wie [oder] ich korrigiere den Projektpfad und es hat gut funktioniert!

pixparker
quelle
1

Enable-Migrations -EnableAutomaticMigrations

Chandudab
quelle
1
Nachdem Sie mehrere Lösungen ausprobiert haben, funktioniert Ihre Lösung gut für mich.
Nguyenhoai890
Arbeitete für mich in Visual Studio Community 2015. Danke (Alle anderen Lösungen sind in meinem Fall fehlgeschlagen)
fedeteka
1

Da ich bereits einen Migrationsordner hatte, habe ich Visual Studio neu gestartet und Update-Database -verbose in der Paketmanagerkonsole ausgeführt. Das hat bei mir funktioniert

depcka
quelle
1

Ich habe alle oben genannten Vorschläge ausprobiert, aber nichts hat bei mir funktioniert, dann habe ich aktualisiert Nuget Package Managerund es hat funktioniert.

Reyan Chougle
quelle
1
  1. Installieren Sie das Entity-Framework mit dem folgenden Befehl im aktuellen Projekt: PM> Install-Package EntityFramework -IncludePrerelease

  2. Fügen Sie eine Klasse "MyDBContext" in den Modellordner ein, wie unten angegeben:

    öffentliche Klasse MyDBContext: DbContext {public MyDBContext () {}}

  3. Aktivieren Sie nun Migrationen für das aktuelle Projekt mit dem folgenden Befehl: PM> enable-migrations

Schneeblindzz
quelle
1

Als Administrator ausführen vs = >> open Öffnen Sie das Projekt

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database
Jamaljaj
quelle
0

Versuchen Sie in VS 2013, UPDATE 1 (RC1) zu installieren, und das Problem ist behoben.

Danilo Breda
quelle
0

Ich hatte mehrere Projekte in der Lösung, aber ich hatte das richtige Standardprojekt eingestellt, also dachte ich, dass es funktionieren sollte.

Am Ende musste ich die -StartupProject MyProjectNameOption zum Befehl hinzufügen

L_7337
quelle
0

Keine dieser Lösungen hat bei mir funktioniert. Meine Lösung war zu löschen packages/EntityFramework.6.1.3undRestore NuGet Packages

Ich bemerkte, dass packages/EntityFramework.6.1.3/tools/EntityFramework.psd1das fehlte, also war dies eine wahrscheinliche Ursache. Wie es überhaupt entfernt wurde, obwohl ich keine Ahnung habe.

Cameron Aavik
quelle
0

Überprüfen Sie, ob der Konfigurationsabschnitt "entityFramework" vorhanden und in Ihrer .config-Datei beschrieben ist

<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>
KiriK
quelle
0

Überprüfen Sie die Version des Entity Framework.

Wenn es 6.3 ist, stufen Sie es auf 6.2 herunter und es sollte gut funktionieren

Samith Kumar
quelle
2
Bitte erläutern Sie dies. Warum sollte jemand die installierte Bibliotheksversion herunterstufen, um dieses Problem zu beheben?
andrensairr
0

Ich hatte gerade das gleiche Problem im asp.net-Kern VS2019

Dies löste es:

Install-Package Microsoft.EntityFrameworkCoreInstall-Package
Install-Package Microsoft.EntityFrameworkCore.Tools

Vergessen Sie nicht, das Standardprojekt in der Package Manager-Konsole für Ihr Datenbankprojekt festzulegen, falls es sich unterscheidet.

Während der Ausführung der Migrationen scheint auch das Standardprojekt eine Rolle zu spielen. In einem späteren Schritt half es, dies in meinem Hauptstartprojekt (nicht im EF-Datenbankprojekt) zu installieren:

Install-Package Microsoft.EntityFrameworkCore.Design
CodingYourLife
quelle
Ich glaube nicht, dass es vor 8 Jahren einen .net-Kern gibt.
Nach dem
0

Wenn Sie ein MVC-Webprojekt erstellen Sie sollten beim Erstellen des Projekts die Option Authentifizierung auswählen. Standardmäßig ist nicht ausgewählt. Geben Sie hier die Bildbeschreibung ein

M Fa
quelle
0

Downgrade auf 6.2 hat mir geholfen.
.NET Framework Version 4.6.1
Projekt im alten Format (nicht .NET Standard)
Visual Studio sollte für die Erstmigration mit Administratorrechten geöffnet sein.
Ich denke, EF mit Version über 6.2 erfordert das neueste .NET Framework.

Артем
quelle
-4

Überprüfen Sie, ob das Projekt im Projektmappen-Explorer geöffnet ist.

Dies könnte die Ursache Ihres Problems sein.

Renato Diniz
quelle