HttpConfiguration адсутнічае зборка

Я будую сайт, выкарыстоўваючы 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» (вы зніклі без вестак з дапамогай дырэктывы або спасылка на зборку?)

Ён таксама не прызнае поле толькі для чытання RouteParameter. Гэта адбываецца са мной, што гэта можа мець нешта рабіць з гэтай версіяй, мая длл System.Web з'яўляецца версія 4.0.0.0.

Яшчэ адна дадатковая частка інфармацыі з'яўляецца тое, што пры ўводзе «з дапамогай System.Web.», Intellisense ДЕЛАЕТ распазнае DLL .Http

АДНАК, у кодзе, ён не распазнае ні адзін з яго параметраў.

24
Так, і код паказвае, што ён выкарыстоўвае System.Web.Http. Аднак ён не прызнае HttpConfiguration (не прызнае RouteParameter)
дададзена аўтар Soph, крыніца
Я павінен правая кнопка мышы і дадайце ў рамках зборкі адмыслова пад назвай System.Web.Http? Таму што я не магу знайсці. Можа быць, гэта пытанне. Чаму гэта можа быць?
дададзена аўтар Soph, крыніца
<�Код> HttpConfiguration клас у System.Web.Http бібліятэкі.
дададзена аўтар Jay, крыніца
<�Код> System.Web зборка змяшчае класы ў прасторы імёнаў System.Web.Http менавіта таму вы arn't бачачы памылку там, аднак HttpConfiguration клас у <�код > System.Web.Http зборкі, а не System.Web . Ці можаце вы пацьвердзіць, што вы абодва зборкі спасылкі?
дададзена аўтар Jay, крыніца

8 адказы

Я вырашыў. Праблема складалася ў тым, калі я стварыў сайт, я абнавіў ўсе пакеты праз NuGet. Аднак, як я was not збіраюся выкарыстоўваць Entity Framework, я выдаліў яго. Для таго, каб мець магчымасць выдаліць гэты пакет, ён неабходны для мяне, каб выдаліць Microsoft.AspNet.Providers.Core 1,2, а таксама ... і я зрабіў.

Гэты пакет адсутнічае сапсавалі рэчы. Я ачысьціў праект і пачаў усё спачатку. Я мог бы таксама выкарыстаў каманду Update-пакет у кансолі PM і быў бы аднавіць усе страчаныя пакеты. Аднак, так як я зрабіў так шмат блытаніны ў параўнанні з трохі (побач з нулём) працай я зрабіў, я вырашыў пачаць усё спачатку.

Дзякуй ў любым выпадку!

25
дададзена
калі вы не з памылкай як install.ps1 не можа быць загружаны, таму што запуск скрыптоў адключана ў гэтай сістэме пры ўсталёўцы гэтага пакета, запусціце наступную каманду ў Powershell: ExecutionPolicy Неабмежаванага -Scope CurrentUser </код >, а затым выкарыстоўваць гэтую каманду кіравання пакетамі кансолі: Update-Package -reinstall Microsoft.AspNet.WebApi.Core
дададзена аўтар eFarzad, крыніца
Свежае Install-Package Microsoft.AspNet.WebApi.Core вырашыць гэтую праблему для мяне таксама. дзякуючы @Kanapolis
дададзена аўтар Dennis Rongo, крыніца
Гэтае рашэнне ў мяне на паўдарозе ... трэба выканаць свежы Install-Package Microsoft.AspNet.WebApi.Core пасля абнаўлення пакетаў, каб канчаткова вырашыць.
дададзена аўтар Kanapolis, крыніца

Я сутыкнуўся з гэтай памылкай пры кланаванні прыкладання MVC 4.0, які раней працаваў для мяне. Мая праблема была ў тым, што Microsoft.Net.Http NuGet пакет быў не аднавіць належным чынам. Я вырашыў яго з кансолі NuGet:

<�Код> Update-Package -reinstall Microsoft.Net.Http

3
дададзена

Для іншых, якія стаяць перад гэтай праблемай, маё рашэнне было па-іншаму. Па-першае, я быў паніжаючы праект ад .net 4.5 для .net 4.0, але сімптомы былі такімі ж, як паказана вышэй:

<�Р> тып або імя вузла «HttpConfiguration» не існуе ў   прастору імёнаў «System.Web.Http» (вы зніклі без вестак з дапамогай дырэктывы або   спасылка на зборку?) </р>

Я наткнуўся на блогу, які патлумачыў, што існуе сувязь паміж Newtonsoft.Json і HttpConfiguration , я выдаліў спасылку на Newtonsoft.Json з праект і packages.config файл затым паўторна усталяваны Newtonsoft.Json з кансолі мэнэджара пакетаў:

Install-Package Newtonsoft.Json

Я не быў у стане выдаліць Newtonsoft.Json з пакета кіравання кансолі з-за іншых залежнасцяў, таму неабходна ўручную выдаліць спасылку.

Here's the link to the article: Newtonsoft.Json Hidden Dependencny on HttpConfiguration Breaks Compilation

2
дададзена
Замест таго, каб здабываць рэчы ўручную пераўсталёўваць пакет з NuGet кансолі: Update-Package -reinstall Newtonsoft.Json
дададзена аўтар Riga, крыніца

1.In Рашэнне Explorer, пстрыкніце правай кнопкай мышы вузел праекта і выберыце каманду Дадаць спасылку.

2.In дыялогавым акне Даданне спасылкі абярыце ўкладку асамблей. І увядзіце «system.web.http» у поле пошуку ў правым верхнім куце.

3.Select the components you want to reference, if it is already selected than first remove the reference than **again Add Reference.

Перабудаваць праект зноў. Калі ласка, дайце мне ведаць, калі ён працуе. Дзякуй.

2
дададзена
Я ўжо ў .NET 4.5 і пераўсталяваў Newtonsoft.Json, але нічога не працуе, акрамя гэтага. Я не ведаю, як я страчу гэтую спасылку, дзякуй!
дададзена аўтар John Isaiah Carmona, крыніца

We started experiencing this issue on one of our projects since last week. The project was building fine 2 weeks ago & then all of a sudden started throwing out this exception. No changes were made in in the nuget packages for this project. Even checking out an older revision from SVN didn't result in a successful build.

Out of desperation, we upgraded the solution from VS2012 to VS2013 & lo and behold, it built! We suspect, but were unable to confirm, that a tooling update done in Visual Studio 2013 had affected this library in Visual Studio 2012.

Гэта можа не працаваць для ўсіх, але ёсць магчымасць абнавіць рашэнне, гэта, здаецца, вырашыць гэтую праблему.

1
дададзена

пры абнаўленні і паўторнай ўстаноўкі ўсіх пакетаў у сеткі Саш з NuGet, і, здаецца, не было правільным рашэннем - перазапуск Visual Studio выратаваў мяне.

1
дададзена

Пераканайцеся, што вы збіраеце для Framework 4.5, а не 4.0. Гэта вырашыла праблему для мяне

1
дададзена

Яшчэ адзін сцэнар. Я разумею, што гэта толькі слаба звязаны з пытаннем, як я чыста Web API. Аднак <�моцны> мой пошук прывёў мяне сюды, так ...

У мяне быў існуючы праект у вырашэнні, што мэтавай Framework 4.5.2.

Калі я дадаў новы праект, ён увайшоў у 4.5, паколькі я не надае дастатковай увагі. HttpConfiguration чынам знік з рэгістравых метаду Web API.

Змена мэты 4.5.2 вырашыць праблему HttpConfiguration. Майце на ўвазе, што таксама выклікала некаторае іншае гары з RouteParameter: зараз у мяне было два вызначэння, адзін у System.Web.Http, а іншы ў System.Web.UI.WebControls. Гэта досыць проста, я думаю.

У мяне такое адчуванне, што ёсць больш да гэтага ...

0
дададзена