Entity framework 无法加载文件或程序集';实体框架&x27;降级EF 5.0.0.0之后-->;4.3.1.0
在过于匆忙地升级到EF 5.0.0.0 RC并被一个无法部署到Windows Azure(.NET 4.0及以下版本)的.NET 4.5项目所困扰之后,我决定降级到EF 4.3.1.0 我不确定执行这种类型迁移的最佳方法,但我的策略是使用“管理NuGet软件包”,确定哪些项目引用了该软件包,取消选中每个项目中的软件包,安装替换软件并重新检查正确的项目 不幸的是,这样做之后,我的解决方案产生了名义上的“FileLoadException”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)中
我在解决方案文件(尤其是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软件包
- 清洗溶液
- 重新构建解决方案
希望这对某人有所帮助…我对硒也有类似的问题: 我使用NuGet降级了selenium,并收到了相同的错误消息。我的解决方案是从app.config文件中删除较新的版本行。我遇到了类似的问题:
web.config
文件使用4.*配置进行了适当更新
无法加载文件或程序集的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" />