3

我正在尝试在站点内创建一个 webapi 控制器。它是一个模板控制器,与 Visual Studio 插入的内容没有任何变化。

该代码位于 MVC4 站点中,该站点运行完全没有任何错误,但是,当我调用 webapi 控制器时,我收到此错误:

无法加载文件或程序集 'EntityFramework, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其依赖项之一。该系统找不到指定的文件。

我已经卸载了 EntityFramework nuget 包,当我在整个解决方案中搜索时,在任何文件中都找不到它,但是,我反复收到此错误。

有什么线索可以解决这个问题吗?

4

8 回答 8

2

我有同样的问题。

一切正常,然后开始为所有 Web api 请求提供 404。

我已经尝试了一切.. 解决我的问题的唯一方法是将 EF 4.1.0.0 的引用添加到我的项目中,并将其添加到 Web.config。

这很奇怪,因为我的解决方案中没有任何地方使用或引用 EF。

我没有 4.1 版本,我从这里下载了它http://www.microsoft.com/en-us/download/details.aspx?id=26825


我发现了为什么 EF 4.1 被列为依赖项。仅当我想发布该站点时才出现错误。我所做的只是添加可部署的依赖项 并检查 ASP.NET MVC,因为主机服务器没有安装 MVC 4。当我查看 _bin_deployableAssemblies 文件夹时

在此处输入图像描述

我的眼睛抓住了 System.Web.Http.Data.EntityFramework.dll,我立即反编译,瞧,我发现那里引用了 EF 4.1。

在此处输入图像描述

于 2012-05-29T22:29:45.610 回答
1

Arian,每次我在使用 EF4 时使用股票 VS 模板执行某些操作时都会看到该错误。

将其转过来并在解决方案中再次安装 Entity Framework。启动 Nuget 管理器或从其控制台执行此操作:

Install-Package EntityFramework 

(对于 4.3.1)

Install-Package EntityFramework -Pre  

(对于 5.0.0rc)

一旦你的引用中有 DLL(顺便说一句,检查一下),错误就会消失

于 2012-05-27T23:30:06.897 回答
1

尝试将以下内容添加到您的 web.config 文件中:

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.1.0" newVersion="4.3.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
于 2012-06-01T19:47:05.033 回答
0

它是一个模板控制器,与 Visual Studio 插入的内容没有任何变化。

由于这些模板,实体框架可能是一个依赖项。一些模板将生成DataControllers,这需要 EF。如果你仔细阅读,你会在模板显示的文字中看到:“Generate ...., using Entity Framework

如果不是这种情况,并且您有 simpleApiControllers并且您已经卸载了 EF,请仔细检查您的packages.config文件,以确保那里也没有对 Entity Framework 的引用。

于 2012-06-04T09:31:37.723 回答
0

尝试删除每个项目的obj和文件夹,然后重新构建应用程序。bin这帮助我不止一次地解决了同样的问题。

于 2012-06-06T07:21:41.863 回答
0

尝试.csproj在记事本等文本编辑器中打开项目的文件并搜索短语“EntityFramework”。如果它出现命中,那可能会给你一个关于那个问题是什么的线索。

于 2012-06-06T20:28:04.437 回答
0

删除EntityFramework 的 web.configdependentAssembly 行为我的项目修复了它。

web.config 代码的屏幕截图 -dependentAssembly - EntityFramework

于 2013-07-31T22:58:26.603 回答
0

就我而言,由于我使用的是 .NET 4.0,所以在升级到 VS2012(需要用于不同的项目)之后,我不得不恢复到 EntityFramework 4.1。

在 VS 2010 的包管理器控制台中运行此命令:

PM> Install-Package EntityFramework -Version 4.1.10715.0

于 2013-09-14T18:49:40.350 回答