【问题标题】:Could not load file or assembly 'System.Data.Entity无法加载文件或程序集“System.Data.Entity”
【发布时间】:2019-07-12 19:55:27
【问题描述】:

我在解决方案(一个笑话网站)中工作。该解决方案有 2 个项目:

  1. 模型(C# 类库)
  2. MVC 3 空应用程序

我试图让我的视图列出数据库中的笑话,但我收到以下错误:

无法加载文件或程序集 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其之一 依赖关系。系统找不到指定的文件

从错误消息中可以看出,我已经将 System.Data.Entity 添加到 MVC 3 应用程序的 web.config 中。

无论我做什么,我似乎都无法修复错误!我在 HomeController 和 Index.cshtml 中添加了 Entity 类的 using 语句。

【问题讨论】:

    标签: asp.net-mvc-3


    【解决方案1】:

    要在 ASP.NET MVC 3 中使用外部实体框架模型(例如嵌入到 DLL 中),您必须:

    1. 将以下引用添加到您的 MVC 项目:System.Data.Entity(版本 4.0.0.0,运行时 v4.0.30319)
    2. 在您的 web.config 中添加以下行

    ...

    < compilation debug="true" targetFramework="4.0">
    
      <assemblies>
        <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
      </assemblies>
    </compilation>
    

    【讨论】:

    • 谢谢你们。那行得通。我不能对你的答案投票吗?
    • @A.M.我将两个引用都添加到我的项目中,但仍然无法使用 System.Data.Entity - 它没有看到 DbContext 类。有什么我应该看的吗?我正在使用 Umbraco 7。谢谢
    • 在本地工作,但不幸的是在服务器上工作。
    【解决方案2】:

    要解决此错误:

    • 转到项目中的参考部分
    • 右键单击它,然后添加库包引用。
    • 在在线标签中搜索实体框架
    • 如果您启用了互联网连接,您将获得大量已安装的软件包
    • 选择EF4包,最后添加

    如果您安装了任何实体框架并且遇到错误,请单击以添加参考并在“浏览”选项卡中转到以下位置:

    C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0
    

    选择找到 System.Data.Entity.dll 然后添加它。这将解决此问题。

    【讨论】:

      【解决方案3】:

      我遇到了同样的错误,这是因为 MVC3 项目使用了 Entity Framework 4.1,而我的域模型(在类库项目中,相同的解决方案)在添加引用时抓取了 4.2。 我从我的 Web 项目中卸载了 EF,然后重新安装,现在两者都有 4.2 并且工作正常。 目前正在使用 Apress 标题 Pro ASP.NET MVC Framework (Freeman)。

      【讨论】:

        【解决方案4】:

        解决此问题的另一种方法是添加空的 edmx 文件 (Add -&gt; Class -&gt; Data -&gt; ADO.NET Entity Data Model),然后将其删除。 我不确定 Visual Studio 向导的作用,但这是我机器上的一个常见问题,我总是这样修复它。

        【讨论】:

          【解决方案5】:

          确保您在项目中引用了System.Data.Entity 程序集。不仅在 web.config assemblies 部分中,而且在那些被引用的程序集中。还要确保 System.Data.Entity, V4.0.0.0 存在于您运行此应用程序的服务器上的 GAC 中。

          【讨论】:

          • 如何确保“System.Data.Entity, V4.0.0.0 存在于您正在运行此应用程序的服务器上的 GAC 中”......我认为这可能是我的问题。
          • 安装程序未将 4.0.0.0 版本安装到 GAC。它安装在“c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5”文件夹中。不幸的是,编译器没有将它复制到destination文件夹中。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-04-25
          • 2020-11-30
          • 2020-08-17
          相关资源
          最近更新 更多