it-swarm.com.de

HttpConfiguration fehlende Baugruppe

Ich baue eine Site mit MVC4. Ich konnte gar nicht erst anfangen, dass ich einen merkwürdigen Fehler habe. Das ist mein Code:

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 }
            );
        }
    }
}

Fehlermeldung: Der Typ oder Name der Assembly 'HttpConfiguration' ist im Namespace 'System.Web.Http' nicht vorhanden (fehlt eine using-Direktive oder eine Assemblyreferenz?)

Das Readonly-Feld RouteParameter wird auch nicht erkannt. Es scheint mir, dass es etwas mit der Version zu tun hat, meine System.Web-DLL ist Version 4.0.0.0.

Eine weitere zusätzliche Information ist, dass Intellisense die .Http-DLL erkennt, wenn ich "using System.Web" eingebe

Im Code erkennt er jedoch keine seiner Parameter.

24
Soph

Ich habe es gelöst Das Problem war, dass ich beim Erstellen der Site alle Pakete über Nuget aktualisiert habe. Da ich Entity Framework jedoch nicht verwenden wollte, deinstallierte ich es. Um dieses Paket deinstallieren zu können, musste ich Microsoft.AspNet.Providers.Core 1.2 ebenfalls deinstallieren ... und ich tat es.

Dieses fehlende Paket hat die Dinge durcheinander gebracht. Ich habe das Projekt abgeschlossen und noch einmal von vorne angefangen. Ich hätte auch den Befehl Update-Package in der PM - Konsole verwenden können und hätte alle verlorenen Pakete wiederhergestellt. Da ich jedoch im Vergleich zu meiner kleinen Arbeit (neben null) so viel Durcheinander gemacht hatte, entschied ich mich, alles noch einmal von vorne zu beginnen.

Danke trotzdem!

25
Soph

Dieser Fehler ist beim Klonen einer MVC 4.0-Anwendung aufgetreten, die zuvor für mich funktioniert hat. Mein Problem war, dass das Microsoft.Net.Http-NuGet-Paket nicht ordnungsgemäß wiederhergestellt wurde. Ich habe es von der NuGet-Konsole aus gelöst:

Update-Package -reinstall Microsoft.Net.Http

4
mm201

Für andere, die mit diesem Problem konfrontiert waren, war meine Lösung anders. Zunächst habe ich ein Projekt von .net 4.5 auf .net 4.0 heruntergestuft, aber die Symptome waren die gleichen wie oben:

Der Typ oder Name der Assembly 'HttpConfiguration' ist in .__ nicht vorhanden. der Namespace 'System.Web.Http' (fehlt eine using-Direktive oder eine Assemblyreferenz?)

Ich stolperte über einen Blogbeitrag, in dem erklärt wurde, dass es eine Verknüpfung zwischen Newtonsoft.Json und HttpConfiguration gibt. Ich entfernte den Verweis auf Newtonsoft.Json aus dem Projekt und die packages.config-Datei und installierte anschließend Newtonsoft.Json von der Paket-Manager-Konsole neu:

Install-Package Newtonsoft.Json

Ich konnte Newtonsoft.Json aufgrund anderer Abhängigkeiten nicht von der Paketverwaltungskonsole deinstallieren. Daher muss der Verweis manuell entfernt werden. 

Hier ist der Link zum Artikel: Newtonsoft.Json Hidden Dependencny auf HttpConfiguration Breaks Compilation

3
David Martin

1.Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektknoten und klicken Sie auf Verweis hinzufügen.

2. Wählen Sie im Dialogfeld Referenz hinzufügen die Registerkarte Baugruppen aus. Geben Sie in das Suchfeld in der rechten oberen Ecke "system.web.http" ein.

3.Wählen Sie die Komponenten aus, auf die Sie verweisen möchten, wenn sie bereits ausgewählt sind, und entfernen Sie zuerst die Referenz, bevor Sie ** erneut hinzufügen.

Erstellen Sie das Projekt erneut. Bitte lassen Sie mich wissen, ob es funktioniert. Vielen Dank.

2
Prerna Jain

Stellen Sie sicher, dass Sie für Framework 4.5 und nicht 4.0 kompilieren. Das hat das Problem für mich gelöst

1

wenn Sie alle AspNet-Pakete von Nuget aktualisiert und erneut installiert haben und es scheint, dass es keine geeignete Lösung gab - der Neustart von Visual Studio hat mich gerettet.

1
rock_walker

Dieses Problem tauchen wir seit letzter Woche in einem unserer Projekte auf. Das Projekt wurde vor 2 Wochen fertiggestellt und plötzlich begann diese Ausnahme auszuräumen. In den Nuget-Paketen wurden für dieses Projekt keine Änderungen vorgenommen. Selbst das Prüfen einer älteren Version von SVN führte nicht zu einem erfolgreichen Build.

Aus Verzweiflung haben wir die Lösung von VS2012 auf VS2013 hochgerüstet und siehe da, sie wurde gebaut! Wir vermuten, konnten aber nicht bestätigen, dass ein Toolupdate-Update in Visual Studio 2013 diese Bibliothek in Visual Studio 2012 beeinflusst hat.

Dies funktioniert möglicherweise nicht für alle, aber es gibt eine Option zum Aktualisieren der Lösung. Dies scheint das Problem zu lösen.

Noch ein anderes Szenario. Ich akzeptiere, dass dies nur lose mit der Frage zusammenhängt, da ich nur eine Web-API bin. Aber meine Suche hat mich hierher geführt ...

Ich hatte ein bestehendes Projekt in der Lösung, das auf Framework 4.5.2 abzielte. 

Als ich ein neues Projekt hinzufügte, wurde es mit 4,5 bewertet, da ich nicht genug Aufmerksamkeit schenkte. HttpConfiguration wurde ordnungsgemäß aus der Web-API-Register-Methode entfernt.

Durch das Ändern des Ziels auf 4.5.2 wurde das HttpConfiguration-Problem behoben. Allerdings hat es mit RouteParameter auch etwas anderes Leid verursacht: Jetzt hatte ich zwei Definitionen, eine in System.Web.Http und die andere in System.Web.UI.WebControls. Leicht genug, denke ich.

Mein Gefühl ist, dass da noch mehr ist ...

0