9

Ho setacciato SO, google, Gesù, tutto e non riesco a capire questo fuori. Ecco quello che ho fatto prima ho ottenuto questo errore:Entity Framework codice prime migrazioni errore di lancio

  1. installata EF (la versione pre, 6 forse, non so)
  2. deciso che non volevo, in modo disinstallati che e reinstallato la versione stabile (5)
  3. troncato il mio database tramite SSMS

qui è l'errore:

Exception calling "CreateInstanceFrom" with "8" argument(s): "Could not load file or  
assembly 'EntityFramework, Version=5.0.0.0, Culture=neutral, PublicK 
eyToken=b77a5c561934e089' or one of its dependencies. The located assembly's manifest 
definition does not match the assembly reference. (Exception from H 
RESULT: 0x80131040)" 
At C:\Projects\BCATracker.Web\packages\EntityFramework.6.0.0- 
alpha2\tools\EntityFramework.psm1:425 char:31 
+  $domain.CreateInstanceFrom <<<< (
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : DotNetMethodTargetInvocation 

Ecco quello che ho t ried:

Elimina tutto dalla directory bin, ricompilare. Fail rimuovere EF da nuget, eliminare il file nella directory packages, readd ef in nuget. fallire. Muro di perforazione. Fail

Si prega di aiuto!

guardando il file proj vedo questo:

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

Possibile causa principale?

+0

Perché si dispone di 3 versioni di EF? EF6 alpha2 (6.0.0.0), EF5 per .NET Framework 4.5 (5.0.0.0) e EF 5 per .NET Framework 4 (4.4.0.0). Quale versione vuoi usare? Se non si dispone di altri pacchetti, rimuovere manualmente tutti i riferimenti a EntityFramework.dll. Se vuoi usare EF6 rimuovi il riferimento a System.Data.Entity.dll se ne hai uno. Elimina packages.config (se hai altri pacchetti di nuget li interromperò). Installa la versione EF che desideri utilizzare. (Mi chiedo se il pasticcio si finisce con è stato causato da retargeting progetto ...) – Pawel

+0

voglio essere mira 5, per NET 4.0, che ho pensato che ero, ma dal momento che ho aggiunto il 6 alfa brevemente ottenuto tutto incasinato su. Di cosa ho bisogno per ef 4.4? – ledgeJumper

+0

Quindi ripulire il progetto come detto sopra ma non rimuovere il riferimento a System.Data.Entity.dll. Assicurati che i tuoi progetti siano rivolti a .NET Framework 4. Dalla console di Package Manager esegui "Install-Updates EntityFramework" o utilizza la GUI - assicurati di non installare EF6. Questo dovrebbe ottenere EntityFramework.dll 4.4.0.0 che è EF5 per .NET Framework 4. Dovresti essere in grado di usare Uninstall-Package ora. Quando desidero eseguire il retargeting della versione di .NET Framework, disinstallo sempre prima EF, retarget e installo di nuovo EF per essere sicuro di avere la versione corretta. – Pawel

risposta

0

Credo di poter trovare una soluzione. Ho avuto diversi progetti nella mia soluzione.

enter image description here

La mia logica database, era in SQLDataAccess. L'assembly era di riferimento in WebUI.

Ho iniziato al DomainLogic. Definisci i POCO per le classi di base del repository lì.

Quindi ho aggiunto il progetto SqlDataAccess.

e provato Enable-Migrations, Add-Migration e Update-Database comando. Funzionava bene. Dopo aver aggiunto WebUI (un'applicazione Web basata su MVC 4 al progetto e eseguito i comandi precedenti, ho iniziato a ricevere questo errore di versione

Ho scaricato il progetto WebUI e ho eseguito nuovamente il comando. Anche se non è la soluzione migliore, potresti voler scaricare altri progetti lasciando il progetto atabase nella soluzione e poi eseguire questi comandi. Ha funzionato perfettamente.

0

Per risolvere questo problema, effettuare le seguenti operazioni:

1) Disinstallare Entity Framework dal pacchetto (Gestisci pacchetti NUGET).

2) Riavviare Visual Studio.

3) Reinstallare Entity Framework nuovamente dal gestore pacchetti.

4) Aggiungere riferimento a System.Data.Entity.

5) Eseguire il comando nella console del gestore pacchetti Enable-Migrations -ContextTypeName Movie.Models.MovieDBContext (questo è un esempio di contesto).

Dopo questo si poteva vedere i cambiamenti riflessi nel packages.config.

15

ho capito il problema. EntityFramework.dll doveva essere nel GAC per Visual Studio per utilizzarlo dal gestore pacchetti.

  1. Avviare Visual Studio Command Prompt (assicurarsi iniziato Visual Studio come amministratore)
  2. Vai alla directory di pacchetti e trovare la directory del pacchetto EntityFramework.
  3. Vai lib \ net45 (se rivolti 4.5)
  4. Tipo: gacutil/i EntityFramework.dll

Nota: Può essere saggio di riavviare il computer del tutto a questo punto.

io non sono sicuro perché Visual Studio smesso di vedere la DLL, ma questo mi ha passato questo problema.

+1

Grazie mille! sembra che, dopo l'aggiornamento di Windows 7 ottengo questo problema. – Fragment

+0

Nessun problema! Se questo ha risposto alla tua domanda, per favore accetta questa come risposta. Ottengo punti. :-) – allen1

+0

già upvoted;) – Fragment

1

ho anche affrontato questo problema durante l'utilizzo utilizzando il codice prima migrazione. basta aggiornare la versione del framework di entità a Entity Framework versione 6.1.3 per risolvere questo problema. utilizzando il comando sulla console Package Manager "Install Package-Entity Framework 6.1.3 -version"

1
  1. Avvio di Gestione pacchetti Nuget per soluzione ... finestre e aggiornare EntityFramework
  2. Riavviare Visual Studio
  3. Eseguire il comando nella console del gestore pacchetti Enable-Migrations -ContextTypeName Movie.Models.MovieDBContext (Questo è un esempio di contesto)
1

Installare EF 6.1.3 e questo risolverà il problema.

0

Ho Windows 10. Il seguente procedura corretta la questione

  1. Open Program e funzionalità e fare una ricerca per 'entità'
  2. ho notato un aggiornamento è stato installato dopo il 2016/01/23 6.1.3 aggiornamento su 7/22/2015
  3. Selezionato "Entity Framework 6.1.3" ecc. Update
  4. Fare clic sul pulsante "Ripara". Dopo il completamento della riparazione, ho riavviato Visual Studio e il problema non è più emerso.

Grazie a @Farshid per l'indizio iniziale di una risoluzione.

enter image description here

2

Sì sopra commento è giusto che ha lavorato per me.

EntityFramework.dll bisogno di essere nel GAC per Visual Studio usarlo dal gestore di pacchetti.

1. Start Visual Studio Command Prompt (ensure you started Visual Studio as Administrator) 
2. Go to your packages directory and find the EntityFramework package directory. 
3. Go to lib\net45 (if targeting 4.5)  
4. type: gacutil /i EntityFramework.dll 

Nota: Potrebbe essere consigliabile riavviare il computer completamente a questo punto.

C:\Windows\system32>cd.. 

C:\Windows>cd.. 

C:\>cd \packages\EntityFramework.5.0.0\lib\net45 

C:..\packages\EntityFramework.5.0.0\lib\net45> 
gacutil /i EntityFramework.dll 

Questo funzionerà definitivamente.

-1

ero anche affrontando lo stesso errore e sprecare un sacco di tempo su questo errore ** Questo è solo a causa di Ho aggiornato quadro entità ma ha dato questo errore così ho di nuovo installo Entity Framework 6.0.0 ** Errore risolto

enter image description here

Problemi correlati