【发布时间】:2013-06-03 21:04:40
【问题描述】:
我已经部署了一个 ASP.NET MVC 4 应用程序并且主页加载正常,但是当我尝试访问任何其他页面(都尝试连接到 SQL 数据库)时,我收到此错误:
无法加载文件或程序集 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。 找到的程序集的清单定义与程序集引用不匹配. (来自 HRESULT 的异常:0x80131040) 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“EntityFramework,Version=4.1.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)
我检查了 Web.config 文件,其中包含以下相关条目:
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=4.4.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
...
<compilation targetFramework="4.0" />
我已经阅读了通过 Google 可以找到的所有内容,但到目前为止没有任何帮助。我知道我构建应用程序的 EF 版本与部署机器上的版本不同,但我可以使用一些方向来纠正这种差异。
【问题讨论】:
-
不能把EF库推送到服务器吗?服务器上的 GAC 中有 EF 吗?
-
您的 bin 目录中有 EntityFramework dll 吗?
-
您似乎在 .NET Framework 4 上使用 EF5(因此配置文件中的版本为 4.4.0.0),但您得到的例外是 EF 4.1(版本为 4.1.0.0)。您正在使用的某些程序集似乎仍在尝试使用 4.1,而其他 EF5 (4.4.0.0)。确保在任何地方都引用相同的程序集。此外,配置文件中的条目只是将 .NET Framework 指向一个知道如何读取配置部分的类型,因此仅更新它以使应用程序针对 EF5 工作是不够的
-
@Justin 抱歉,我不知道 GAC 是什么。
-
@Shyju 是的,我的 bin 文件夹中有 EntityFramework.dll。
标签: c# asp.net-mvc entity-framework