Asp.net mvc HttpConfiguration缺少程序集
我正在使用MVC4构建一个站点。我甚至不能开始说我有一个奇怪的错误。这是我的代码:Asp.net mvc HttpConfiguration缺少程序集,asp.net-mvc,asp.net-mvc-4,Asp.net Mvc,Asp.net Mvc 4,我正在使用MVC4构建一个站点。我甚至不能开始说我有一个奇怪的错误。这是我的代码: using System; using System.Collections.Generic; using System.Linq; using System.Web.Http; namespace MyProject { public static class WebApiConfig { public static void Register(HttpConfiguratio
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
namespace MyProject
{
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
}
错误消息:命名空间“System.Web.Http”中不存在程序集“HttpConfiguration”的类型或名称(是否缺少using指令或程序集引用?)
它也不能识别只读字段RouteParameter。我觉得这可能与版本有关,我的System.Web dll是4.0.0.0版
另外一条信息是,当我键入“using System.Web.”时,Intellisense确实识别.Http dll
但是,在代码中,它不识别任何参数。我解决了它。问题是,当我创建站点时,我通过Nuget更新了所有包。然而,由于我不打算使用实体框架,我卸载了它。为了能够卸载该软件包,我还需要卸载Microsoft.AspNet.Providers.Core 1.2。。。我做到了 这个丢失的包裹把事情搞砸了。我清理了项目,重新开始。我还可以在PM控制台中使用Update Package命令,并恢复所有丢失的包。然而,由于与我所做的很少(几乎为空)的工作相比,我做了太多的混乱,我决定重新开始
无论如何谢谢你 从上周开始,我们的一个项目就遇到了这个问题。两周前,项目进展顺利&然后突然开始抛出这个例外。此项目的nuget包中未进行任何更改。即使从SVN中检出一个旧版本,也没有成功构建 出于绝望,我们将解决方案从VS2012升级到VS2013&瞧,它成功了!我们怀疑(但无法确认)Visual Studio 2013中完成的工具更新影响了Visual Studio 2012中的此库
这可能不适用于所有人,但有一个升级解决方案的选项,这似乎可以解决问题。确保您是为Framework 4.5而不是4.0编译的。这解决了我的问题对于其他面临这个问题的人,我的解决方案是不同的。首先,我将一个项目从.net 4.5降级到.net 4.0,但症状与上面相同: 中不存在程序集“HttpConfiguration”的类型或名称 命名空间“System.Web.Http”(是否缺少using指令或 组件参考?) 我偶然发现了一篇博文,其中解释了
Newtonsoft.Json
和HttpConfiguration
之间存在链接,我从项目和packages.config
文件中删除了对Newtonsoft.Json
的引用,然后从package manager控制台重新安装了Newtonsoft.Json
:
Install-Package Newtonsoft.Json
由于其他依赖关系,我无法从包管理控制台卸载Newtonsoft.Json
,因此需要手动删除引用
这是文章的链接:又是一个场景。我承认这与这个问题关系不大,因为我纯粹是Web API。然而我的搜索让我来到这里,所以 我在解决方案中有一个现有的项目,目标是框架4.5.2 当我添加一个新项目时,由于我没有给予足够的关注,它以4.5的速度运行。HttpConfiguration正式从Web API注册方法中消失 将目标更改为4.5.2解决了HttpConfiguration问题。请注意,它还引起了RouteParameter的一些其他问题:现在我有了两个定义,一个在System.Web.Http中,另一个在System.Web.UI.WebControls中。我想这很容易
我的感觉是,还有更多…1.在解决方案资源管理器中,右键单击项目节点,然后单击添加引用 2.在“添加参照”对话框中,选择“部件”选项卡。然后在右上角的搜索框中键入“system.web.http” 3.选择要引用的组件,如果已选中,则首先删除引用,然后**再次添加引用。
再次重建项目。请让我知道它是否有效。谢谢。当您更新并重新安装Nuget的所有AspNet软件包时,似乎没有合适的解决方案-重新启动Visual Studio拯救了我。我在克隆以前为我工作的MVC 4.0应用程序时遇到此错误。我的问题是
Microsoft.Net.Http
NuGet包没有正确还原。我从NuGet控制台解决了这个问题:
更新包-重新安装Microsoft.Net.Http
我不得不更新Microsoft.Net.Http,经过长期的努力,它对我来说很有效
更新包-重新安装Microsoft.Net.Http该
HttpConfiguration
类位于System.Web.Http
库中。是,代码显示它正在使用System.Web.Http。但是它不识别HttpConfiguration(也不识别RouteParameter)System.Web
程序集在System.Web.Http命名空间中包含类,这就是为什么您在那里看不到错误的原因,但是HttpConfiguration
类在System.Web.Http
程序集中,而不是System.Web
中。您是否可以验证是否引用了这两个程序集?我应该右键单击并从框架中添加一个名为System.Web.Http的程序集?因为我找不到。也许这就是问题所在。为什么会这样?现在是2020年,仍然没有办法检查丢失的软件包并自动重新安装。与其手动删除,不如从Nuget控制台重新安装软件包:更新软件包–重新安装Newtonsoft.json此解决方案让我成功了一半。。。更新包后需要执行新的安装包Microsoft.AspNet.WebApi.Core
,以最终解决问题。新的安装包Microsoft.AspNet.WebApi.Core也为我解决了问题。