Console di Gestione pacchetti Enable-Migrations CommandNotFoundException solo in un progetto VS specifico


122

Ho provato a eseguire il comando 'Enable-Migrations' in un nuovo progetto e ho ricevuto il messaggio:

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

Ma in tutti gli altri progetti il ​​comando viene eseguito correttamente.

Perché sta succedendo?

BTW, sto usando VS2010 Professional SP1

EDIT: ho reinstallato con il comando: Install-Package EntityFramework -IncludePrerelease e il problema è andato via.


2
Ciao, aggiungi la tua soluzione come risposta e contrassegnala come accettata (cosa che puoi fare 2 giorni dopo), in modo che non venga visualizzata come domanda senza risposta.
Gert Arnold

1
Sto avendo esattamente lo stesso problema. Ma nessuna delle cose in questo thread sembra funzionare. Hai reinstallato l'intero studio visivo o hai semplicemente eseguito quel comando?
ObedMarsh

Ho semplicemente eseguito il comando ...
Eduardo Brites

2
Purtroppo, i risultati di quel comando per me sono solo "'EntityFramework 6.1.0' già installato". e ancora non ha add-migration o enable-migrations come comandi validi.
Mir

Ricevo il pacchetto di installazione: impossibile trovare il pacchetto "EntityFramework". quando provo la tua soluzione
Naguib Ihab

Risposte:


85

Il semplice riavvio di Visual Studio ha funzionato per me. Non è necessario installare pacchetti, ecc.


8
Anche il riavvio di VS ha funzionato per me, sono contento di averlo provato prima di provare a reinstallare EntityFramework
SM3RKY

5
Il riavvio ha funzionato per Visual Studio 2015. Non è necessario installare pacchetti.
jonas

5
Una nota: ho questo problema ogni volta che devo installare i miei pacchetti (come un nuovo repo pull). Sembra che VS debba riavviarsi prima che il PM venga inizializzato correttamente con i nuovi pacchetti (VS Community 2015 Update 1)
Jono

2
Anche il nuovo repo pull ha causato questo per me. Riavvia risolto. (VS Enterprise 2015 Update 2).
Mike Rouse

84

Ho reinstallato con il comando: Install-Package EntityFramework -IncludePrerelease e il problema è andato via.


13
Ho costruito la mia soluzione e poi ho chiuso e riaperto VS 2013 e ha funzionato
Luca

Nota che EntityFrameworksupporta solo .net framework 4.0 e 4.5. Quindi, se stai usando .net framework 4.6 o versioni successive, non funziona.
Tân

1
@ TânNguyễn - che cos'è? My EntityFramework 6.1.3 NuGet funziona correttamente nel mio progetto 4.6.x
bkwdesign

Il riavvio non ha funzionato per me, ma è stato così.
robbpriestley

29

Questo problema si verifica perché non è installato Entity Framework. Si prega di installare Entity Framework utilizzando il comando seguente.

Install-Package EntityFramework -IncludePrerelease

Una volta installato, scegli il progetto nell'elenco a discesa del progetto predefinito della console del gestore dei pacchetti.

Assicurati che almeno una classe nel tuo progetto erediti dal contesto dati, altrimenti usa la classe seguente:

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

Se non lo facciamo, otterremo un altro errore:

No context type was found in the assembly

Dopo aver completato queste cose puoi correre

enable-migrations

Ha funzionato per me. Grazie.
Najeeb

Ha funzionato per me oggi con VS 2019.
perezdr

17

Il riavvio di Visual Studio con privilegi di amministratore ha risolto il problema per me.


13

Assicurati di eseguire Visual Studio come amministratore.


1
Stavo eseguendo VS come amministratore. All'epoca non sapevo che avessimo bisogno di installare il pacchetto su ogni progetto.
Eduardo Brites

12

Ho avuto lo stesso problema con VS 2019 Preview, .Net Core ed EntityFramework Core.

È venuto fuori che ho dovuto installare tramite NuGet Microsoft.EntityFrameworkCore.Toolse Microsoft.EntityFrameworkCore.Design. Una volta fatto, ha funzionato a meraviglia.


10

Prima "Install-Package EntityFramework -IncludePrerelease" e poi il riavvio di Visual Studio come amministratore hanno funzionato per me insieme.


3

In Visual Studio 2012 ho avuto lo stesso errore. Ho dovuto disinstallare NuGet (Strumenti> Estensioni e aggiornamenti> Installato> Tutto: NuGet Package Manager: pulsante Disinstalla). Quindi chiuso Visual Studio. Quindi ha riaperto Visual Studio e ha reinstallato NuGet (Strumenti> Estensioni e aggiornamenti> Online> Raccolta di Visual Studio: Gestione pacchetti NuGet: pulsante Scarica). Quindi nelle seguenti finestre: fare clic sul pulsante Installa, quindi fare clic sul pulsante di chiusura. Quindi chiudere e riaprire Visual Studio.


Questo ha funzionato per me, penso che sia un'opzione migliore rispetto a forzare un aggiornamento alla pre-release.
OverMars

2

Ciò che ha risolto questo sintomo per me (VS2013) è stato disinstallare e reinstallare il pacchetto EF con Nuget. La differenza nel file csproj ha cambiato questo ...

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

... in questo ...

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

Non capisco ancora del tutto il motivo, ma almeno ha funzionato.


Ho avuto problemi con l'aggiunta-migrazione / aggiornamento-database, ecc. Ho provato tutte le soluzioni, ma anche se sono sicuro di aver già provato a disinstallare e reinstallare EF, non ha funzionato. Fino ad ora quando lo ha fatto. Non è la prima volta che ho problemi con i pacchetti EF. :(
GeoffM

2

In .NET Core, sono stato in grado di raggiungere la stessa risoluzione descritta nella risposta accettata, inserendo quanto segue nella console del gestore pacchetti:

Install-Package EntityFramework.Core -Pre

2

Ho avuto lo stesso problema e ho provato la maggior parte della soluzione fornita da altre persone, ma ha funzionato per me con i passaggi seguenti. Ho VS 2017.

passi:

Install-Package EntityFramework -IncludePrerelease

quindi crea una classe come

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

e all'ultimo eseguire

Enable-Migrations -EnableAutomaticMigrations

Cosa non ha funzionato per me:

: Riavvio di VS.

: solo il comando "Enable-Migrations", che è senza -EnableAutomaticMigrations.

: ripristino o aggiornamento di Nuget Package Manager.

Il mio errore originale all'inizio era

/ * Il termine "abilitazione migrazione" non viene riconosciuto come nome di un cmdlet, una funzione, un file di script o un programma eseguibile. Controlla l'ortografia del nome o, se è stato incluso un percorso, verifica che il percorso sia corretto e riprova. Alla riga: 1 char: 1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo: ObjectNotFound: (enable-migration: String) [], CommandNotFoundException * /


1

Ho avuto lo stesso problema e ho scoperto che è a causa di alcuni caratteri nel percorso del progetto come [o] ho corretto il percorso del progetto e ha funzionato bene!


1

Enable-Migrations -EnableAutomaticMigrations


1
Dopo aver provato diverse soluzioni, la tua soluzione funziona bene per me.
nguyenhoai890

Ha funzionato per me su Visual Studio Community 2015. Grazie (Tutte le altre soluzioni non sono riuscite nel mio caso)
fedeteka

1

Poiché avevo già la cartella delle migrazioni, ho riavviato Visual Studio e ho eseguito Update-Database -verbose nella console del gestore pacchetti. Ha funzionato per me


1

Ho provato tutti i suggerimenti di cui sopra ma niente ha funzionato per me, quindi l'ho aggiornato Nuget Package Managere ha funzionato ..


1
  1. Installa Entity Framework nel progetto corrente utilizzando il comando seguente: PM> Install-Package EntityFramework -IncludePrerelease

  2. Aggiungi una classe "MyDBContext" nella cartella Model come indicato di seguito:

    classe pubblica MyDBContext: DbContext {pubblico MyDBContext () {}}

  3. Ora abilita le migrazioni per il progetto corrente con il comando seguente: PM> enable-migrations


1

esegui come amministratore vs = >> open Apri il progetto

-> On the Package manager Console

Enable-migration
add-migration migrationName
update-database

0

In VS 2013, prova a installare l'UPDATE 1 (RC1) e il problema è risolto.


0

Avevo più progetti nella soluzione, ma avevo il set di progetti predefinito corretto, quindi ho pensato che avrebbe dovuto funzionare.

Alla fine, ho dovuto aggiungere l' -StartupProject MyProjectNameopzione al comando


0

Nessuna di queste soluzioni ha funzionato per me. La mia soluzione era eliminare packages/EntityFramework.6.1.3eRestore NuGet Packages

Ho notato che packages/EntityFramework.6.1.3/tools/EntityFramework.psd1mancava, quindi questa era una causa probabile. Come sia stato rimosso in primo luogo, anche se non ho idea.


0

Controlla se la sezione di configurazione "entityFramework" esiste e descritta nel tuo file .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

Controlla la versione di Entity Framework.

se è 6.3, downgrade a 6.2 e dovrebbe funzionare bene


2
Per favore approfondisci questo aspetto. Perché qualcuno dovrebbe eseguire il downgrade della versione della libreria installata solo per risolvere questo problema?
andrensairr

0

Ho appena avuto lo stesso problema in asp.net core VS2019

Questo lo ha risolto:

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

Non dimenticare di impostare il progetto predefinito nella console di Gestione pacchetti sul progetto di database nel caso in cui sia diverso.

Durante l'esecuzione delle migrazioni, anche il progetto predefinito sembra svolgere un ruolo. In un passaggio successivo ha aiutato a installarlo nel mio progetto di avvio principale (non nel progetto di database EF):

Install-Package Microsoft.EntityFrameworkCore.Design

Non credo che 8 anni fa esista .net core.
Meglio

0

se si crea un progetto Web MVC È necessario selezionare Autenticazione durante la creazione del progetto. per impostazione predefinita non è selezionato. inserisci qui la descrizione dell'immagine


0

il downgrade a 6.2 mi ha aiutato.
.NET Framework versione 4.6.1
Progetto in vecchio formato (non .NET Standard)
Visual Studio dovrebbe essere aperto con diritti di amministratore per la migrazione iniziale.
Immagino che EF con la versione precedente alla 6.2 richieda l'ultimo .NET Framework.


-4

Controlla se il progetto è aperto nella finestra Esplora soluzioni.

Questa potrebbe essere la causa del tuo problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.