2012-03-23 3 views
13

Я пытался решить проблему с привязкой к сборке в течение последних 12 часов, не так много удачи. На прошлой неделе я обновил все проекты в решении от EF 4.1.0.0 до EF 4.3.1.0. Сегодня утром я добавил несколько тестов к существующему тестовому проекту, очистил и перекомпилировал решение. Все проекты компилируются без предупреждений или ошибок. В моем Entity Framework вызова в любом месте в проекте, я получаю следующее исключение:Сборка привязки Старая ссылка Исключение

метод инициализации NutricityPPCTests.Common.DizzleProductExtensionsTests.TestSetup кинул исключение. System.IO.FileLoadException: System.IO.FileLoadException: Не удалось загрузить файл или сборку «EntityFramework, Version = 4.1.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089» или одна из его зависимостей . Определение манифеста размещенной сборки не соответствует ссылочной позиции сборки. (Исключение из HRESULT: 0x80131040).

Я активировал средство просмотра журнала привязки сборки слияния и нашел запись журнала, соответствующую исключению. Я подтвердил, что мой тестовый проект, проект MOMData, ссылаются на правильную сборку EF4.3.1.0. Я подтвердил, что в файлах проектов нет ссылок на EF 4.1.0.0. Я удалил содержимое каталогов obj и bin в обоих проектах. Проект был очищен и перестроен так много раз, что мой жесткий диск, вероятно, выйдет завтра.

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

Где еще я должен искать старую ссылочную сборку?!? Любая помощь будет приветствоваться и очень ценится! Спасибо заранее за ваше время!

+0

Это не MomData. Это сборка, в которой используется именованный NutricityPPCTests, который все еще имеет старую ссылку. –

ответ

1

У меня была такая же ошибка. Большинство проектов в моем решении, где ссылаются на DLL Entity Framework 4.3.0.0, но когда я проверил ссылки для всех проектов в моем решении, я нашел несколько проектов, ссылающихся на DLL Entity Framework 4.1.0.0. Исправлена ​​проблема с удалением и заменой их новыми ссылками на DLL Entity Framework 4.3.0.0.

+0

Такая же ошибка здесь, к сожалению - вообще никакой ссылки в каком-либо другом проекте. – Obiwan007

17

Добавьте следующие строки в файл 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

Это исправило мою проблему. –

+0

Рад я мог помочь :) –

+2

Это отличный ответ :) –

Смежные вопросы