【问题标题】:HttpConfiguration missing assemblyHttpConfiguration 缺少程序集
【发布时间】:2013-05-28 14:52:26
【问题描述】:

我正在使用 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。

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

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

【问题讨论】:

  • HttpConfiguration 类在 System.Web.Http 库中。
  • 是的,代码显示它正在使用 System.Web.Http。但是它不识别 HttpConfiguration (NOR DOES IT RECOGNIZE RouteParameter)
  • System.Web 程序集包含 System.Web.Http 命名空间中的类,这就是您在那里看不到错误的原因,但是 HttpConfiguration 类在 System.Web.Http 程序集中,而不是System.Web。你能确认你引用了两个程序集吗?
  • 我应该右键单击并从框架中添加一个专门命名为 System.Web.Http 的程序集?因为我一个也找不到。也许这就是问题所在。为什么会这样?
  • 2020 年了,仍然没有办法检查丢失的软件包并自动重新安装它们。

标签: asp.net-mvc asp.net-mvc-4


【解决方案1】:

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

Update-Package -reinstall Microsoft.Net.Http

【讨论】:

    【解决方案2】:

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

    这个丢失的包裹搞砸了。我清除了项目并重新开始。我还可以在 PM 控制台中使用 Update-Package 命令并恢复所有丢失的包。但是,由于与我所做的少量(几乎为零)工作相比,我做了很多乱七八糟的工作,所以我决定重新开始。

    还是谢谢!

    【讨论】:

    • 这个解决方案让我成功了一半......需要在更新包后执行新的Install-Package Microsoft.AspNet.WebApi.Core 才能最终解决。
    • 全新的安装包 Microsoft.AspNet.WebApi.Core 也为我解决了这个问题。谢谢@Kanapolis
    • 如果您在安装此软件包时出现 install.ps1 cannot be loaded because running scripts is disabled on this system 之类的错误,请在 Powershell 中运行此命令:ExecutionPolicy Unrestricted -Scope CurrentUser,然后在软件包管理器控制台中使用此命令:Update-Package -reinstall Microsoft.AspNet.WebApi.Core
    【解决方案3】:

    我不得不更新 Microsoft.Net.Http,经过长时间的努力,它对我有用

    Update-Package -reinstall Microsoft.Net.Http

    【讨论】:

      【解决方案4】:

      对于面临此问题的其他人,我的解决方案有所不同。首先,我将一个项目从 .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

      【讨论】:

      • 不是手动删除东西,而是从 Nuget 控制台重新安装包:Update-Package –reinstall Newtonsoft.Json
      【解决方案5】:

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

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

      3.选择你想要引用的组件,如果已经选择了先删除引用再**再次添加引用。

      再次重建项目。请让我知道它是否有效。谢谢。

      【讨论】:

      • 我已经在 .NET 4.5 中并重新安装了 Newtonsoft.Json 但没有任何效果,除了这个。我不知道我是怎么失去那个参考的,谢谢!
      【解决方案6】:

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

      【讨论】:

        【解决方案7】:

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

        出于绝望,我们将解决方案从 VS2012 升级到 VS2013,瞧,它成功了!我们怀疑但无法确认在 Visual Studio 2013 中完成的工具更新影响了 Visual Studio 2012 中的这个库。

        这可能并不适用于所有人,但有一个升级解决方案的选项,这似乎可以解决问题。

        【讨论】:

          【解决方案8】:

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

          【讨论】:

            【解决方案9】:

            又一个场景。我接受这只是与问题松散相关,因为我纯粹是 Web API。但是 我的 搜索将我带到了这里,所以...

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

            当我添加一个新项目时,它进入了 4.5,因为我没有给予足够的关注。 HttpConfiguration 从 Web API 注册方法中正式消失。

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

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-09-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2019-10-15
              • 2016-05-12
              • 2021-04-20
              相关资源
              最近更新 更多