2012-03-23 12 views
13

Ho cercato di risolvere un problema di assemblaggio per le ultime 12 ore, con non molta fortuna. La scorsa settimana, ho aggiornato tutti i progetti in una soluzione da EF 4.1.0.0 a EF 4.3.1.0. Ho aggiunto alcuni test stamattina a un progetto di test esistente, pulito e ricompilato la soluzione. Tutti i progetti vengono compilati senza avvisi o errori. Alla mia entità chiamata quadro in qualsiasi parte del progetto, viene visualizzato il seguente eccezione:Ordine di associazione Vecchio riferimento Eccezione

metodo di inizializzazione NutricityPPCTests.Common.DizzleProductExtensionsTests.TestSetup ha gettato eccezione. System.IO.FileLoadException: System.IO.FileLoadException: Impossibile caricare il file o l'assembly 'EntityFramework, Version = 4.1.0.0, Lingua = il neutro PublicKeyToken = b77a5c561934e089' o una delle sue dipendenze . La definizione manifest dell'assembly individuato non corrisponde a e corrisponde al riferimento all'assembly. (Eccezione da HRESULT: 0x80131040).

Ho attivato il visualizzatore del registro di associazione del gruppo di fusione e ho trovato la voce del registro che corrisponde all'eccezione. Ho verificato che il mio progetto di test, il progetto MOMData, fanno entrambi riferimento all'assembly EF4.3.1.0 corretto. Ho verificato che non c'erano riferimenti a EF 4.1.0.0 nei file di progetto. Ho eliminato il contenuto delle directory obj e bin in entrambi i progetti. Il progetto è stato pulito e ricostruito così tante volte, che il mio disco fisso probabilmente distribuirà domani.

*** Assembly Binder Log Entry (3/22/2012 @ 5:55:11 PM) *** 

The operation failed. 
Bind result: hr = 0x80131040. No description available. 

Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll 
Running under executable c:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe 
--- A detailed error log follows. 

=== Pre-bind state information === 
LOG: User = NUTRICITY0\awolske 
LOG: DisplayName = EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
(Fully-specified) 
LOG: Appbase = file:///C:/Users/awolske/Documents/NutricityWorkspace/Nutricity/NutricityPPCTests/bin/Release 
LOG: Initial PrivatePath = NULL 
LOG: Dynamic Base = NULL 
LOG: Cache Base = NULL 
LOG: AppName = QTAgent32.exe 
Calling assembly : MomData, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null. 
=== 
LOG: This bind starts in default load context. 
LOG: Using application configuration file: C:\Users\awolske\Documents\NutricityWorkspace\Nutricity\NutricityPPCTests\bin\Release\NutricityPPCTests.DLL.config 
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config. 
LOG: Post-policy reference: EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
LOG: GAC Lookup was unsuccessful. 
LOG: Attempting download of new URL file:///C:/Users/awolske/Documents/NutricityWorkspace/Nutricity/NutricityPPCTests/bin/Release/EntityFramework.DLL. 
LOG: Assembly download was successful. Attempting setup of file: C:\Users\awolske\Documents\NutricityWorkspace\Nutricity\NutricityPPCTests\bin\Release\EntityFramework.dll 
LOG: Entering run-from-source setup phase. 
LOG: Assembly Name is: EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 
WRN: Comparing the assembly name resulted in the mismatch: Minor Version 
ERR: The assembly reference did not match the assembly definition found. 
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated. 

Dove altro dovrei cercare il vecchio gruppo di riferimento?!? Qualsiasi aiuto sarebbe benvenuto e molto apprezzato! Grazie in anticipo per il tuo tempo!

+0

Non è MomData. È un assembly che utilizza NutricityPPCTests denominato che ha ancora il vecchio riferimento. –

risposta

1

Ho avuto lo stesso errore. La maggior parte dei progetti nella mia soluzione in cui si fa riferimento alla dll Entity Framework 4.3.0.0, ma quando ho controllato i riferimenti per tutti i progetti nella mia soluzione, ho trovato alcuni progetti che fanno riferimento alla dll Entity Framework 4.1.0.0. Rimuovendoli e sostituendoli con nuovi riferimenti alla dll Entity Framework 4.3.0.0 risolti il ​​problema.

+0

Lo stesso errore qui, purtroppo - nessun riferimento in nessun altro progetto. – Obiwan007

17

Aggiungere il seguente al file web.config:

<runtime> 
<assemblyBinding> 
     <dependentAssembly> 
      <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" /> 
      <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
+0

Questo ha risolto il mio problema. –

+0

Felice di poter aiutare :) –

+2

Questa è un'ottima risposta :) –

Problemi correlati