Entity framework 无法加载文件或程序集';实体框架&x27;降级EF 5.0.0.0之后-->;4.3.1.0

Entity framework 无法加载文件或程序集';实体框架&x27;降级EF 5.0.0.0之后-->;4.3.1.0,entity-framework,Entity Framework,在过于匆忙地升级到EF 5.0.0.0 RC并被一个无法部署到Windows Azure(.NET 4.0及以下版本)的.NET 4.5项目所困扰之后,我决定降级到EF 4.3.1.0 我不确定执行这种类型迁移的最佳方法,但我的策略是使用“管理NuGet软件包”,确定哪些项目引用了该软件包,取消选中每个项目中的软件包,安装替换软件并重新检查正确的项目 不幸的是,这样做之后,我的解决方案产生了名义上的“FileLoadException” 我在解决方案文件(尤其是packages.config)中

在过于匆忙地升级到EF 5.0.0.0 RC并被一个无法部署到Windows Azure(.NET 4.0及以下版本)的.NET 4.5项目所困扰之后,我决定降级到EF 4.3.1.0

我不确定执行这种类型迁移的最佳方法,但我的策略是使用“管理NuGet软件包”,确定哪些项目引用了该软件包,取消选中每个项目中的软件包,安装替换软件并重新检查正确的项目

不幸的是,这样做之后,我的解决方案产生了名义上的“FileLoadException”


我在解决方案文件(尤其是packages.config)中搜索了对EF 5.0.0.0 RC的引用,但没有找到任何引用。

在repositories.config和其他地方尝试查找对EntityFramework的引用失败后,我在编辑Web.config以帮助诊断时偶然发现了一个引用

bindingRedirect引用了不再安装的5.0.0.0,这似乎是异常的来源。老实说,我没有将此引用添加到Web.config,在尝试在一个单独的项目中复制错误后,发现它不是由NuGet软件包安装程序添加的,因此,我不知道它为什么会出现,但有东西添加了它

<dependentAssembly>
  <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
</dependentAssembly>

我决定用工作项目中的等效元素替换它。注:在以下内容中,5.0.0.0的参考替换为4.3.1.0:

<dependentAssembly>
  <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
</dependentAssembly>

这成功了

然后,我决定完全删除EntityFramework的dependentAssembly引用

它仍然有效

所以,我把这个作为一个自我回答的问题贴在这里,希望它能帮助其他人。如果有人能向我解释:

  • 是什么将EntityFramework的dependentAssembly添加到了my Web.config
  • 删除这些引用的任何后果

我很想了解。

如果您使用Visual Studio 2012 ASP.NET Web表单应用程序模板,那么您将获得该引用。我假设它是通过Nuget而不是framework System.Data.Entity引用获得的


我收到了同样的问题。我正在获取System.Data.Entity.Infrastructure;错误,这只是v5.0或更高版本的一部分。只需右键单击引用并选择“管理NuGet包”。在Installed Package选项中,卸载已安装的Entity FrameWork并安装5.0版本。它解决了问题。我试图手动获取System.Data.Entity引用,但未成功

public Configuration()
{
    AutomaticMigrationsEnabled = false;

    // register mysql code generator

    SetSqlGenerator("MySql.Data.MySqlClient", new MySql.Data.Entity.MySqlMigrationSqlGenerator());
}
我发现连接器6.6.4将不适用于实体框架5,而适用于实体框架4.3。因此,要降级,请在package manager控制台中发出以下命令:

卸载包EntityFramework

安装软件包EntityFramework-版本4.3.1


最后,我更新了数据库-再次冗长,瞧!将创建架构和表。等待下一版本的连接器与Entity Framework 5一起使用。

我在更新旧项目时遇到了相同的问题。以下是我为解决这个问题所做的:

  • 已将所有项目转换为.NET 4.5
  • 已卸载实体框架5的NuGet软件包
  • 已重新安装Entity Framework 5的NuGet软件包
  • 清洗溶液
  • 重新构建解决方案
使用Entity Framework 5和.NET 4的项目正在安装Entity Framework dll版本4.4。一旦我在项目中将.NET版本切换到4.5,dll版本将是5

我的问题来自于.NET4上的旧项目和运行.NET4.5的新项目,因此我的解决方案中有两个EF的dll版本


希望这对某人有所帮助…

我对硒也有类似的问题: 我使用NuGet降级了selenium,并收到了相同的错误消息。我的解决方案是从app.config文件中删除较新的版本行。

我遇到了类似的问题:

  • 在我的ASP.NET MVC项目中,我已将Sql Server Compact数据库(sdf)添加到我的App_数据文件夹中。VS添加了对EntityFramework.dll版本4.*的引用。
    web.config
    文件使用4.*配置进行了适当更新

  • 我在解决方案中添加了一个新项目(数据访问层项目)。在这里,我添加了一个EDMX文件。VS添加了对EntityFramework.dll版本5.0的引用。App.config文件已使用5.0配置进行了相应更新

  • 在执行时,当从数据库读取时,应用程序总是抛出异常
    无法加载文件或程序集的EntityFramework,版本=5.0.0.0…


    通过从我的MVC项目中删除EntityFramework.dll v4.0,该问题已得到修复。我还用正确的5.0版本更新了
    web.config
    文件。然后一切都按预期进行了。

    我遇到了这个问题,我所做的只是确保我在所有项目中引用了正确的.Net框架,然后只需将web.config从

    
    

    
    

    一切顺利

    我收到了完全相同的错误消息。除了我的错误消息说“无法加载文件或程序集的EntityFramework,版本=6.0.0.0…”,因为我安装了EF 6.1.1。下面是我为解决这个问题所做的

    1) 我通过单击工具>NuGet包管理器>包管理器控制台启动了NuGet管理器控制台 2) 我通过键入以下命令卸载了已安装的EntityFramework 6.1.1:

    Uninstall-package EntityFramework
    
    Install-Package EntityFramework -version 5.0.0
    
    3) 收到已成功卸载软件包的确认后,我通过键入以下命令安装了5.0.0版本:

    Uninstall-package EntityFramework
    
    Install-Package EntityFramework -version 5.0.0
    

    问题解决了

    我在Jenkins下使用MSTEST运行单元测试时遇到了类似的问题。本例中的修复程序是删除“Version=6.0.0.0”,如下所示:

    Old:
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=xxxx" requirePermission="false" />
    
    New:
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Culture=neutral, PublicKeyToken=xxxx" requirePermission="false" />
    
    Old:
    新的:
    
    我不得不告诉妈妈
    Old:
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=xxxx" requirePermission="false" />
    
    New:
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Culture=neutral, PublicKeyToken=xxxx" requirePermission="false" />