如何防止Entity Framework 6在配置文件中创建bindingRedirect

时间:2016-10-24 14:52:59

标签: c# entity-framework-6

在编译引用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>

谢谢!

2 个答案:

答案 0 :(得分:1)

您不能在同一个项目中同时使用EF5和EF6

您必须将所有依赖项升级到EF6

答案 1 :(得分:1)

事实证明,这不是EntityFramework的原因,而是Visual Studio。当Visual Studio检测到引用了同一程序集的多个版本时,它将自动创建程序集绑定重定向。

但可以禁用它,但可以编辑项目文件的AutoGenerateBindingRedirects标记。

How to: Enable and Disable Automatic Binding Redirection