#c# #entity-framework-6
#c# #entity-framework-6
Вопрос:
При компиляции проекта, который ссылается на Entity Framework 6, он незаметно вставит следующую привязку к сборке в выходной файл конфигурации:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
</assemblyBinding>
Есть ли какой-нибудь способ отключить это? Пожалуйста, обратите внимание, что раздел вставляется в выходной конфигурационный файл после компиляции, а не в копию разработчика. В результате это перезапишет мою предполагаемую привязку к сборке для entity framework.
На самом деле я хочу это сделать, потому что проект зависит как от EF5, так и от EF6.
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="entityFramework" publicKeyToken="b77a5c561934e089" />
<codeBase version="5.0.0.0" href="LegacyEntityFramework.dll" />
</dependentAssembly>
</assemblyBinding>
Спасибо!
Ответ №1:
Вы не можете использовать EF5 и EF6 в одном проекте
Вы должны обновить все свои зависимости до EF6
Ответ №2:
Оказывается, это вызвано не EntityFramework, а Visual Studio. Когда Visual Studio обнаруживает, что ссылаются на несколько версий одной и той же сборки, она автоматически создает перенаправления привязки сборки.
Но это можно отключить, отредактировав тег AutoGenerateBindingRedirects файла проекта.
Как: Включить и отключить автоматическое перенаправление привязки