我正在尝试在网站内创建一个webapi控制器。它是一个模板控制器,与visual studio插入的内容没有任何变化。
代码在MVC4站点内,完全没有任何错误运行,但是,当我调用webapi控制器时,我收到此错误:
无法加载文件或程序集'EntityFramework,Version = 4.1.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其依赖项之一。系统找不到指定的文件。
我已经卸载了EntityFramework nuget包,当我在整个解决方案中搜索时,在任何文件中找不到它,但是,我反复收到此错误。
有什么可能解决方案的线索?
答案 0 :(得分:2)
我遇到了同样的问题。
一切正常,然后才开始为所有网络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。
答案 1 :(得分:1)
Arian,我在使用EF4时每次使用库存VS模板时都会看到错误。
转过来,在解决方案中再次安装Entity Framework。启动Nuget管理器或从其控制台执行:
Install-Package EntityFramework
(适用于4.3.1)
Install-Package EntityFramework -Pre
(适用于5.0.0rc)
一旦你的引用中有了DLL(顺便说一下,检查一下),错误就会消失
答案 2 :(得分: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>
答案 3 :(得分:0)
它是一个模板控制器,与visual studio插入的内容没有任何变化。
由于这些模板,实体框架可能是依赖关系。某些模板将生成DataControllers
,这需要EF。如果您仔细阅读,您将在模板显示的文本中看到:“生成....,使用实体框架”
如果不是这种情况,并且您有简单的ApiControllers
,并且您已卸载EF,请仔细检查您的packages.config
文件,以确保没有对Entity Framework的引用任
答案 4 :(得分:0)
尝试删除每个项目的obj
和bin
文件夹,然后重建应用程序。这有助于我不止一次解决同样的问题。
答案 5 :(得分:0)
尝试在记事本等文本编辑器中打开项目的.csproj
文件,然后搜索短语&#34; EntityFramework&#34;。如果它出现点击,那可能会给你一个关于这个问题的线索。
答案 6 :(得分:0)
删除 EntityFramework的web.config dependentAssembly行为我的项目修复了它。
答案 7 :(得分:0)
就我而言,由于我使用的是.NET 4.0,因此在升级到VS2012之后我不得不恢复到EntityFramework 4.1(需要一个不同的项目)。
在VS 2010中的程序包管理器控制台中运行此命令:
PM&GT; Install-Package EntityFramework -Version 4.1.10715.0