У меня есть старое приложение Silverlight, которое использует EF5 и не может быть обновлено до EF6. У меня есть еще один проект, использующий EF6 в другом контексте, но я получаю:
Не удалось загрузить файл или сборку EntityFramework, Version = 6.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 или одну из их зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)
Я предполагаю, что это связано с тем, что EF5 уже загружен (он находится в основном проекте, не спрашивайте меня, почему), и он все еще указывает на этот dll
вместо EF6. Как я могу заставить это работать?
Я добавил:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<codeBase version="5.0.0.0" href="C:\Projects\project\2.1.1EF2\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll"/>
<codeBase version="6.0.0.0" href="C:\Projects\project\2.1.1EF2\packages\EntityFramework.6.1.0\lib\net45\EntityFramework.dll"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
в мой основной файл web.config после предложения lgos, но теперь я получаю:
{"[A] System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection нельзя преобразовать в [B] System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection. Тип A происходит из EntityFramework, Version = 5.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 'в контексте' Default 'в расположении' C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files \ project211ef \ 97babe28 \ e7ea3fa9 \ assembly \ dl3 \ 01275099 \ 70646cf08_d86e EntityFramework.dll '. Тип B происходит от EntityFramework, Version = 6.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089 в контексте' Default 'в расположении' C: \ Projects \ project \ 2.1.1EF2 \ packages \ EntityFramework. 6.1.0 \ lib \ net45 \ EntityFramework.dll '. "}
Похоже, он все еще пытается использовать EF5, несмотря на доступ к разделу сущностей EF6.
Я исправил это, добавив перенаправления привязки. В основном web.config
я перенаправляю на новую версию, а затем в подпрограмме web.config
перенаправляю на старую версию.