【问题标题】:Could not load file or assembly 'EntityFramework' error无法加载文件或程序集“EntityFramework”错误
【发布时间】:2012-04-03 22:21:20
【问题描述】:

无法加载文件或程序集 'EntityFramework, Version=4.3.1.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其之一 依赖关系。定位程序集的清单定义不 匹配程序集引用。 (HRESULT 异常:0x80131040)

当我将此代码添加到我的项目中时,我只会收到此错误:

private IUserRepository repository;

        public SearchController(IUserRepository repo)
        {
            repository = repo;
        }

我认为这是有道理的,因为我为此使用了 EntityFramework。我现在才确定如何修复这个错误。

我看过这个链接:http://msdn.microsoft.com/en-us/library/e74a18c4.aspx 虽然我不确定如何使用这个程序? (总是空白)。

我认为这个错误可能与我的数据库是由 dotnet-host.com 托管的事实有关,并且当它与在线数据库交互时,有一些本地引用会中断。

【问题讨论】:

标签: asp.net-mvc-3 entity-framework


【解决方案1】:

错误告诉您的是,您的项目引用了与运行时不同版本的 EntityFramework.dll。

检查您在项目中引用了哪个版本的 EntityFramework.dll(更新您的问题)。

确保将所有相关的 dll 和 *.manifest 复制到应用程序的 bin 文件夹中。

由于是外部主机,您可能需要通过 WebMatrix Package Manager 安装 EntityFramework。如果你这样做了,你可以关注this tutorial

  1. 只需确保在您的主机站点上安装用于开发的相同版本的 EntityFramework,或者
  2. 在 EntityFramework dll 上将您的程序集引用更改为 Specific Version = false(注意我不确定它是否会工作,因为我总是尝试使用相同的版本进行开发和部署,所以也许有人可以确认一下?)。

【讨论】:

  • 这就是问题所在。由于某种原因(默认情况下),它使用的版本号低于我手动引用它时的版本号,并且由于我在两个项目中引用它(一个默认情况下,一次手动),因此导致版本号不一致。谢谢。
  • 在我将一个新的 MVC 项目添加到一个 sln 与多个其他项目引用 EntityFramework (6.0.0.0) 之后,我遇到了这个问题。我的新 MVC 项目的 web.config 试图引用 5.0.0.0。更改为 6.0.0.0,大家都很开心
猜你喜欢
  • 2014-11-10
  • 1970-01-01
  • 2020-05-04
  • 1970-01-01
  • 2015-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
相关资源
最近更新 更多