我正在建立一个使用MVC4的网站。我甚至不能开始我有一个奇怪的错误。这是我的代码:
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.“时,智能感知确实识别出了.Http dll。
但是,在代码中,它不能识别它的任何参数。
发布于 2013-05-29 02:48:46
我解决了。问题是,当我创建这个站点时,我通过Nuget更新了所有的包。但是,由于我不打算使用Entity Framework,所以我卸载了它。为了能够卸载该软件包,我还需要卸载Microsoft.AspNet.Providers.Core 1.2。我做到了。
这个丢失的包裹把事情搞砸了。我清理了这个项目,然后重新开始。我也可以在PM控制台中使用Update-Package命令,并恢复所有丢失的包。然而,由于与我所做的少量(几乎为空)工作相比,我已经做了如此多的混乱工作,我决定从头开始。
不管怎样,谢谢你!
发布于 2017-07-05 06:44:14
当我克隆一个MVC4.0应用程序时,我遇到了这个错误。我的问题是Microsoft.Net.Http NuGet包没有正确恢复。我通过NuGet控制台解决了这个问题:
Update-Package -reinstall Microsoft.Net.Http
发布于 2014-12-01 16:58:34
对于其他面临这个问题的人,我的解决方案是不同的。首先,我将一个项目从.net 4.5降级到.net 4.0,但症状与上面相同:
using程序集'HttpConfiguration‘的类型或名称在命名空间'System.Web.Http’中不存在(是否缺少
指令或程序集引用?)
我偶然发现了一篇博客文章,它解释说Newtonsoft.Json和HttpConfiguration之间有一个链接,我从项目和packages.config文件中删除了对Newtonsoft.Json的引用,然后从包管理器控制台重新安装了Newtonsoft.Json:
Install-Package Newtonsoft.Json由于其他依赖关系,我无法从包管理控制台卸载Newtonsoft.Json,因此需要手动删除引用。
这篇文章的链接是:Newtonsoft.Json Hidden Dependencny on HttpConfiguration Breaks Compilation
https://stackoverflow.com/questions/16795167
复制相似问题