在编译引用Entity Framework 6的项目时,它会在输出配置文件中偷偷插入以下assemblyBinding:
<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>
有没有办法禁用它?请注意,该部分插入到后编译输出配置文件而不是开发副本中。因此,它将覆盖我想要的实体框架的assemblyBinding。
我实际上想要这样做,因为该项目依赖于EF5和EF6。
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="entityFramework" publicKeyToken="b77a5c561934e089" />
<codeBase version="5.0.0.0" href="Legacy\EntityFramework.dll" />
</dependentAssembly>
</assemblyBinding>
谢谢!
答案 0 :(得分:1)
您不能在同一个项目中同时使用EF5和EF6
您必须将所有依赖项升级到EF6
答案 1 :(得分:1)
事实证明,这不是EntityFramework的原因,而是Visual Studio。当Visual Studio检测到引用了同一程序集的多个版本时,它将自动创建程序集绑定重定向。
但可以禁用它,但可以编辑项目文件的AutoGenerateBindingRedirects标记。