2012-03-23 17 views
13

He estado tratando de resolver un problema de ensamblaje durante las últimas 12 horas, sin mucha suerte. La semana pasada, actualicé todos los proyectos en una solución de EF 4.1.0.0 a EF 4.3.1.0. Agregué algunas pruebas esta mañana a un proyecto de prueba existente, limpié y volví a compilar la solución. Todos los proyectos se compilan sin advertencias ni errores. En mi entidad llamada marco en cualquier parte del proyecto, recibo el siguiente excepción:Encuadernación Antigua excepción de referencia

Método de inicialización NutricityPPCTests.Common.DizzleProductExtensionsTests.TestSetup arrojó excepción. System.IO.FileLoadException: System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado 'EntityFramework, Version = 4.1.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' o una de sus dependencias . La definición del manifiesto del ensamblaje ubicado no coincide con con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040).

Encendí el visor de registro vinculante del ensamblaje de fusión y encontré la entrada del registro que corresponde a la excepción. He verificado que mi proyecto de prueba, el proyecto MOMData, ambos hacen referencia al ensamblaje EF4.3.1.0 correcto. Verifiqué que no había referencias a EF 4.1.0.0 en los archivos del proyecto. Eliminé el contenido de los directorios obj y bin en ambos proyectos. El proyecto se ha limpiado y reconstruido tantas veces que mi disco duro probablemente saldrá mañana.

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

¿En qué otro lugar debería estar buscando el ensamblaje al que se hace referencia anteriormente?!? Cualquier ayuda sería bienvenida, ¡y muy apreciada! ¡Gracias de antemano por tu tiempo!

+0

No es MomData. Es un ensamblado que usa NutricityPPCTests que todavía tiene la referencia anterior. –

Respuesta

1

Tuve el mismo error. La mayoría de los proyectos en mi solución se referían a Entity Framework 4.3.0.0 dll, pero cuando revisé las referencias para todos los proyectos en mi solución, encontré algunos proyectos que hacen referencia a Entity Framework 4.1.0.0 dll. Eliminarlos y reemplazarlos con nuevas referencias a Entity Framework 4.3.0.0 dll corrigió el problema.

+0

Mismo error aquí, desafortunadamente, no hay referencias en ningún otro proyecto. – Obiwan007

17

Añadir lo siguiente a su archivo 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

Esto solucionó mi problema. –

+0

Me alegro de poder ayudar :) –

+2

Esta es una gran respuesta :) –

Cuestiones relacionadas