首页 文章

HttpConfiguration缺少程序集

提问于
浏览
24

我正在使用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 }
            );
        }
    }
}

错误消息:程序集“HttpConfiguration”的类型或名称在命名空间“System.Web.Http”中不存在(您是否缺少using指令或程序集引用?)

它也无法识别只读字段RouteParameter . 我发现它可能与版本有关,我的System.Web dll是版本4.0.0.0 .

另外一条信息是当我输入“使用System.Web . ”时,Intellisense会识别.Http dll

但是,在代码中,它无法识别任何参数 .

8 回答

  • 3

    我解决了问题在于,当我创建网站时,我通过Nuget更新了所有软件包 . 但是,由于我不打算使用Entity Framework,因此我将其卸载 . 为了能够卸载该软件包,我还需要卸载Microsoft.AspNet.Providers.Core 1.2 ......我做到了 .

    这个丢失的包搞砸了 . 我清理了这个项目并重新开始了 . 我本可以在PM控制台中使用Update-Package命令,并且可以恢复所有丢失的包 . 然而,由于我做了很多混乱,相比于我所做的小工作(无效),我决定重新开始 .

    不管怎么说,还是要谢谢你!

  • 0

    克隆以前为我工作的MVC 4.0应用程序时遇到此错误 . 我的问题是 Microsoft.Net.Http NuGet包没有正确恢复 . 我从NuGet控制台解决了它:

    Update-Package -reinstall Microsoft.Net.Http

  • 1

    对于面临此问题的其他人,我的解决方案不同 . 首先,我将项目从.net 4.5降级到.net 4.0,但症状与上述相同:

    程序集“HttpConfiguration”的类型或名称在命名空间“System.Web.Http”中不存在(您是否缺少using指令或程序集引用?)

    我偶然发现了一篇博文,其中解释说 Newtonsoft.JsonHttpConfiguration 之间有一个链接,我从项目中删除了对 Newtonsoft.Json 的引用,然后从包管理器控制台重新安装了 packages.config 文件 Newtonsoft.Json

    Install-Package Newtonsoft.Json
    

    由于其他依赖性,我无法从包管理控制台卸载 Newtonsoft.Json ,因此需要手动删除引用 .

    这是文章的链接:Newtonsoft.Json Hidden Dependencny on HttpConfiguration Breaks Compilation

  • 1

    1.在解决方案资源管理器中,右键单击项目节点,然后单击添加引用 .

    2.在“添加引用”对话框中,选择“程序集”选项卡 . 并在右上角的搜索框中键入“system.web.http” .

    3.选择要引用的组件(如果已选择) **first remove the reference than again Add Reference.

    再次重建项目 . 如果有效,请告诉我 . 谢谢 .

  • 1

    自上周以来,我们开始在我们的一个项目中遇到这个问题 . 该项目在2周前建成并没有,然后突然开始抛出这个例外 . 该项目的nuget包中没有进行任何更改 . 即使从SVN签出旧版本也不会导致成功构建 .

    出于绝望,我们将解决方案从VS2012升级到VS2013&lo,看,它建成了!我们怀疑,但无法确认Visual Studio 2013中完成的工具更新是否影响了Visual Studio 2012中的此库 .

    这可能对所有人都不起作用,但有一个升级解决方案的选项,这似乎解决了这个问题 .

  • 4

    确保编译Framework 4.5而不是4.0 . 这解决了我的问题

  • 2

    当您更新并重新安装Nuget的所有AspNet软件包时,似乎没有合适的解决方案 - 重新启动Visual Studio保存了我 .

  • 26

    又一种情况 . 我接受这只是与问题松散相关,因为我纯粹是Web API . 但是 my 搜索引领我到这里......

    我在解决方案中有一个针对Framework 4.5.2的现有项目 .

    当我添加一个新项目时,它进入了4.5,因为我没有给予足够的重视 . HttpConfiguration从Web API Register方法中消失了 .

    将目标更改为4.5.2解决了HttpConfiguration问题 . 请注意,它还引起了RouteParameter的一些其他问题:现在我有两个定义,一个在System.Web.Http中,另一个在System.Web.UI.WebControls中 . 我觉得很容易 .

    我的感觉是,还有更多...

相关问题