Il termine "Update-Database" non viene riconosciuto come nome di un cmdlet


113

Sto usando EF5 beta1 e mentre ero in grado di eseguire "Update-Database" prima. Ora che ho chiuso Visual Studio, non riesco a farlo funzionare. Ottengo il seguente errore:

Il termine "Update-Database" 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 carattere: 16 + Update-Database <<<< -verbose + CategoryInfo: ObjectNotFound: (Update-Database: String) [], CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

Ho provato a reinstallare EF5b1 e sebbene abbia avuto successo (già installato), l '"Update-Database" non funziona ancora.

Qualcuno può aiutare ???


3
Ieri ho avuto un problema simile con un cmdlet diverso e un riavvio completo del sistema ha aiutato ...
nemesv

11
Il riavvio non è necessario. Non eseguiamo script init.ps1 dopo aver eseguito il ripristino del pacchetto (ecco perché il comando non è stato trovato). Basta uscire e riavviare VS (o scaricare / ricaricare il progetto).
RickAndMSFT

1
Mi è successo questo oggi. Ho aperto un repository per un progetto di squadra e doveva ripristinare alcuni pacchetti. Dopo il ripristino, i comandi update-databasee add-migrationnon funzionerebbero. Il riavvio di Visual Studio lo ha risolto.
jmbertucci

Risposte:


169

Ultimamente ho riscontrato questo problema diverse volte. Ho trovato che la soluzione che ha funzionato era chiudere la console di Gestione pacchetti, chiudere Visual Studio e quindi riaprirli. Anche il riavvio ha funzionato la maggior parte del tempo, ma non sempre.


7
Di solito è sufficiente uscire da Restart VS. Vedi i miei commenti nella domanda originale. In rare occasioni potrebbe essere necessario chiudere / riavviare VS due volte.
RickAndMSFT

1
Ho appena affrontato il problema e riavviato Visual Studio e le cose stavano funzionando di nuovo. Grazie.
Shubh

Grazie, per una soluzione efficace, se non schifosa. Sembra essere tutto ciò che funziona su un milione di cose che ho provato.
ProfK

1
Sì, naturalmente. Questa è la soluzione. Soluzione legittima. Grazie Microsoft!
Khateeb321

2
Ho installato "Microsoft.EntityFrameworkCore.Tools" Version = "3.1.0" sui miei progetti di dati e "Microsoft.EntityFrameworkCore.Design" Version = "3.1.0" sul mio progetto web principale, che ha risolto il problema per me.
HaBo

51

Se usi Entity Framework:

Messaggio di errore: "Messaggio di errore (dal comando Update-Database nel PMC): il termine" Update-Database "non è riconosciuto come nome di un cmdlet, una funzione, un file di script o un programma eseguibile. Controllare l'ortografia del nome oppure, se è stato incluso un percorso, verifica che il percorso sia corretto e riprova. "

Soluzione: "Esci da Visual Studio. Riapri il progetto e riprova".

Per ulteriori informazioni, visitare: Scenari avanzati di Entity Framework 6 per un'applicazione Web MVC 5 (12 di 12)

Spero che questo ti aiuti...


@AlbatrossCafe Sure :)
Murat Yıldız

1
Il team di sviluppatori VS dovrebbe fornire il pulsante Aggiorna VS per tali problemi :)
sohaib ha detto

@sohaibjaved Per alcuni problemi, il riavvio di VS non sarebbe sufficiente ed è necessaria una pulizia delle directory come indicato in Visual Studio 2015 estremamente lento . FYI ...
Murat Yıldız

Ho perso il conto di quante cose sono state risolte riavviando Visual Studio
EKanadily

21

A volte, quando carico VS, vedo questo nella mia console del gestore di pacchetti:

Il valore non può essere nullo.

Nome parametro: path1

Non ho idea di cosa lo causi ancora ma sembra che qualcosa vada storto durante l'avvio della console Powershell che interrompe la registrazione di moduli specifici, come le estensioni EF powershell. Puoi comunque caricarlo manualmente:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

Assicurati di sostituire 6.1.1 con qualunque sia la tua versione corrente di Entity Framework.


4
Grazie! L'unica soluzione che ha funzionato per me. Tuttavia, per chiunque utilizzi EF 6.1.3 con VS 2015 è presente un bug in EntityFramework.psm1 ed è disponibile una patch qui stackoverflow.com/a/30062684/1267778 .
parlamento

18

La reinstallazione del pacchetto nuget ha risolto questo problema per me

cioè, esegui

Install-Package EntityFramework -Version 5.0.0

nel gestore di pacchetti


1
Questo funziona per me. Il progetto su cui ho lavorato utilizzava EF e presumo automaticamente che il pacchetto sia stato installato. Si è scoperto che non lo era. Lo sviluppatore ha appena fatto riferimento direttamente a EF dll. Il pacchetto EntityFramework deve essere installato nel progetto affinché Update-Database cmd funzioni.
stack247

Questa risposta sembra improbabile che possa aiutare, tuttavia mi ha salvato la giornata. Grazie,
Nelson Miranda

Lottare con FK oggi usando Fluent API, ecc. E in qualche modo EntityFramework continua a cadere. Ciò che effettivamente ha funzionato per me in questo senso è stato farne un altro Update-Package -Reinstall EntityFramework.
Matt Borja

per me reinstallare e riavviare. basta reinstallare non funziona e riavviare non funziona neanche)
RMazitov

9

riceverai questo errore quando gli strumenti EF non sono installati correttamente.

prova il comando seguente nel gestore di pacchetti Nuget // Disinstalla e installa la stessa versione di EF

Update-Package "EntityFramework" -reinstall

Se continui ad affrontare lo stesso problema. crea un nuovo progetto Web ed esegui il comando seguente in nuget.

(Nota: non è necessario creare il nuovo progetto nella stessa soluzione o nella stessa posizione.)

// Questo aggiornerà EF alla versione più recente (inclusi gli strumenti) // se vuoi usare una versione specifica, usa il -versionflag.

Update-Package "EntityFramework"

Una volta fatto, seleziona il tuo progetto originale e puoi eliminare il progetto appena creato.


Sì!! Grazie =) Avevo installato solo EntityFramwork, EF.Design, EF.SqlServer e EF.SqlServer.Design.
Janneman96,



4

Ho avuto questo stesso problema, e l'origine di esso era sul mio percorso, ho avuto sul mio cammino un nome di directory con staffe diritte, in questo modo: C:\[PROJ]\TestApp.

Quando ho rimosso le parentesi, a C:\PROJ\TestApp, ha iniziato a funzionare bene ...


Di solito è sufficiente uscire da Restart VS. Vedi i miei commenti nella domanda originale.
RickAndMSFT

@RickAndMSFT Questo è molto più vicino a una soluzione migliore che "solo" riavviare VS.
ProfK

@Antonio Anche io ho avuto lo stesso problema e la tua soluzione ha funzionato anche per me.
Utente5590


4

Per me il problema era la versione Nuget .

  1. disinstallare Nuget Package Manager.
  2. riavviare Visual Studio.
  3. installata una nuova versione di Nuget Package Manager.
  4. quindi riavviare di nuovo Visual Studio.

1
Questo era il mio caso, ma avevo solo bisogno di aggiornare nuget nelle estensioni e aggiornare
Oak

questo ha funzionato per me, gestore di pacchetti nuget disinstallato, gestore pacchetti nuget reinstallato, studio visivo riavviato, EntityFramework disinstallato, EntityFramework reinstallato
Rizan Zaky

3

Ho risolto disinstallando e reinstallando "Microsoft.EntityFrameworkCore" e "Microsoft.EntityFrameworkCore.Tools"


1
Se stai usando EF Core, questa è la risposta corretta. O almeno, il problema per me era che Microsoft.EntityFrameworkCore.Toolsnon era installato.
Kirk Woll

2

Questo problema sembra verificarsi quando apri il progetto direttamente da Esplora file. Prova prima ad avviare VS e poi ad aprire il progetto: per me ha funzionato. Immagino che si tratti dell'accesso ai percorsi.


dopo aver riavviato alcune volte e non averlo risolto, questo ha aiutato a risolvere il mio problema!
Niklas


0

Se le altre risposte non funzionano (VS 2017): svuota la cache di NuGet, riavvia VS, quindi ripristina i pacchetti.


0

Ho scoperto che era dovuto a un pacchetto danneggiato. Avevo installato Automapper quando era già installato. Era chiaro che questo pacchetto era danneggiato solo quando ho provato a installarne un altro.

La rimozione del pacchetto danneggiato ha risolto questo problema per me.

È quindi possibile reinstallare automapper. Il problema era con la versione 5.4, ora sono felicemente sulla 6.0.


0

Per me risulta che EntityFramework core non è stato installato sul mio progetto (perché ho iniziato con un progetto vuoto). Quindi l'installazione del pacchetto EntityFramework ha risolto il problema. A volte, se l'installazione di EntityFramework non è riuscita, prova a installare i singoli pacchetti uno per uno

Per esempio

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

0

Ho risolto aggiornando la console di Gestione pacchetti.

Non stavo ottenendo Update-Database nella console di Gestione pacchetti. Quindi riavvio più volte. Riavvia anche Windows.

Poi ne ho scaricato uno nuovo da nuget e poi è stato risolto.


0

Ho avuto questo problema in Visual Studio 2015 e l'ho risolto aggiornando la versione di Nuget.

Strumenti -> Estensioni e aggiornamenti -> Aggiornamenti -> Galleria di Visual Studio


0

La soluzione semplice per me era assicurarmi che ci fosse un trattino tra aggiornamento e database, in questo modo: update-databasee usare le lettere minuscole. Potrebbe essere una coincidenza, ma quando l'ho fatto nella console di Packet Manager, il database è stato effettivamente aggiornato e ho ricevuto il messaggio di fine anziché l' not recognized as the name of a cmdlet, function, script fileerrore.


0

Ho iniziato ad avere lo stesso problema dopo aver aperto accidentalmente una soluzione di Visual Studio con Visual Studio 2015 invece del 2017. Il progetto ha funzionato bene prima di quell'incidente. Era un vecchio progetto con EF 5.0 e non EF Core.

Ho provato tutto ciò che suggerito: riavviato Visual Studio innumerevoli volte, ripulito la cache di NuGet, eliminato tutto nella cartella dei pacchetti, reinstallato EF 5 per il progetto - non va bene, la migrazione aggiuntiva non è stata riconosciuta. Se ho aggiornato EF a 6, ha iniziato a riconoscere i comandi, ma non volevo ancora eseguire l'aggiornamento. Quindi, non appena sono tornato a EF 5, il problema è tornato.

L'unica cosa che alla fine mi ha salvato è stata fare quanto segue:

  • chiudi Visual Studio
  • elimina tutto dalla cartella dei pacchetti
  • eliminare la cartella .vs nella radice della soluzione. Questa cartella è solitamente nascosta, devi attivare l'impostazione Mostra file e cartelle nascosti o selezionare Elementi nascosti nella scheda Visualizza cartella
  • avvia Visual Studio e apri la tua soluzione. Chiederà di ripristinare i pacchetti NuGet, acconsentire.

Ora i comandi EF hanno finalmente iniziato a funzionare di nuovo.


0

Nel mio caso:

  • Il progetto di ricaricamento non ha aiutato
  • Restart VS non ha aiutato
  • Il riavvio del computer non ha aiutato
  • Reinstal EF non ha aiutato

Ma ho trovato un articolo in cui il suggerimento era di importare manualmente il pacchetto EF mancante, utilizzando PM Conole:

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

E questa soluzione ha risolto il mio problema.


0

Nel mio caso il riavvio di Visual Studio (molte, molte volte) non ha funzionato, quindi mentre cercavo altrove ho trovato un messaggio sul terminale di output:

L'attuale .NET SDK non supporta il targeting di .NET Core 2.2. Scegli come destinazione .NET Core 2.1 o versioni precedenti oppure usa una versione di .NET SDK che supporti .NET Core 2.2.

Quindi ho installato la versione richiesta di .NET Core e il comando è stato eseguito correttamente.


0

Ho avuto questo problema in VS 2019 con un progetto esistente che utilizza EntityFramework 6.3.0. Questo progetto ha avuto alcune strane modifiche alla versione apportate per un periodo di tempo e niente lo avrebbe fatto funzionare. Credo di aver provato tutti i suggerimenti elencati qui senza fortuna.

Infine, l'aggiornamento alla versione pre-release di EntityFramework (attualmente 6.4.0-preview3-19553-01) ha risolto il problema, eseguendo questo nella console Package Manager: Update-Package EntityFramework -prerelease. Spero che quando questa versione verrà rilasciata in diretta nelle prossime settimane funzionerà correttamente.


0

Installa Microsoft.EntityFrameworkCore.Tools ha risolto il problema per me, utilizzava pacchetti nuget


0

Nel mio caso, ho eseguito quanto segue: - ripristinato i pacchetti NuGet mancanti facendo clic sul pulsante "Ripristina" nella parte superiore della console di Gestione pacchetti - riavviato Visual Studio - esegui update-database


-1

Per me il problema era la versione Nuget.

Ho rimosso e reinstallato Nuget, quindi ho riavviato Visual Studio e poi tutto ha iniziato a funzionare.

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.