C# 同一域下的两个网站,安装了不同的EF包

C# 同一域下的两个网站,安装了不同的EF包,c#,asp.net-mvc,entity-framework,iis,entity-framework-6,C#,Asp.net Mvc,Entity Framework,Iis,Entity Framework 6,我们有一个旧的asp.net MVC应用程序。它包含EF4X、MVC3等,并使用Oracle作为数据库引擎 作为新任务的一部分,我们需要用MVC5.2X、EF6.2X等重写该应用程序的几页 首先,我尝试将MVC和EF升级到最新版本,在那里我需要做很多更改才能将其升级到EF6X,因此我考虑为新的更改创建一个新的解决方案(将来我们将把所有页面更改为最新的堆栈)。我将旧站点托管到IIS中,并在其中添加了一个应用程序,该应用程序将指向我们的新解决方案 问题是旧的应用程序仍然使用EF4X,而新的应用程序

我们有一个旧的asp.net MVC应用程序。它包含EF4X、MVC3等,并使用Oracle作为数据库引擎

作为新任务的一部分,我们需要用MVC5.2X、EF6.2X等重写该应用程序的几页

首先,我尝试将MVC和EF升级到最新版本,在那里我需要做很多更改才能将其升级到EF6X,因此我考虑为新的更改创建一个新的解决方案(将来我们将把所有页面更改为最新的堆栈)。我将旧站点托管到IIS中,并在其中添加了一个应用程序,该应用程序将指向我们的新解决方案

问题是旧的应用程序仍然使用EF4X,而新的应用程序使用6X,这导致定义了一个错误复制实体框架部分


事实上,我需要使用这两个EF版本,旧版本用于旧项目,新版本用于新项目。有没有办法做到这一点,还是根本不可能

终于找到了同样的方法

我已经从子应用程序中删除了EF部分,并在runtime标记下的child app web.config中添加了一个依赖程序集

所以变化是

注释了应用程序web.config中的以下行

 <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

然后在runtime标记下添加以下部分

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="6.0.0.0" />
      </dependentAssembly>
       </assemblyBinding>
 </runtime>


有趣的问题,我觉得我很快就会遇到。这有助于你解决问题吗?它正在设置应用程序的web.config中的位置。@KevinLamb我已经解决了这个问题,请查看我的答案以了解更多信息