In meinem ASP.NET MVC 4-Projekt zeigt meine Seite Global.asax.cs
den Fehler an
WebApiConfig.Register(GlobalConfiguration.Configuration);
Der Name 'GlobalConfiguration' ist im aktuellen Kontext nicht vorhanden
Ich habe viele Controller und Views gemacht und alles ... Wie kann ich dieses Problem lösen und mein Projekt wiederherstellen?
Hier ist der Rest meines Codes für Kontext
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;
namespace .....
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.Microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
Stellen Sie sicher, dass auf Assembly System.Web.Http.WebHost.dll
verwiesen wird. Hier ist GlobalConfiguration.
Mit .NET Framework 4.5.1 befindet sich GlobalConfiguration in System.Web.Http
:
PM> Install-Package Microsoft.AspNet.WebApi.WebHost
Update-Package Microsoft.AspNet.WebApi.WebHost -reinstall
Das hat bei mir funktioniert. Ich hatte Probleme mit dem Verweis, der im Update-Paket nicht korrekt aktualisiert wurde, oder das Paket sogar entfernt und erneut installiert wurde.
Der obige Befehl installiert alle Abhängigkeiten neu und führt normalerweise den Trick aus, wenn ich ein Problem mit dem Nuget-Paket-Verweis habe.
in meinem asp.net-Webformular basierend auf 4.5 wurde das Problem durch Hinzufügen von System.Web.Routing-DLL und darunterem Import in global.aspx behoben
<%@ Import Namespace="System.Web.Routing" %>
<%@ Import Namespace="System.Web.Http" %>
In meinem Fall bekam ich ein ähnliches Problem in Glabal.asax:
The name 'AreaRegistration' does not exist in the current context.
Ich hatte bereits System.Web.Mvc
Namespace in Global.asax.cs
aber der Compiler war sich dessen nicht bewusst, dh die Klasse AreaRegistration
wurde nicht gefunden.
Was das Problem behoben hat, war das Ausführen des folgenden Befehls in Package Manager Console
in Visual Studio:
PM> Update-Package -reinstall
Nachdem NuGet alle Projektpakete neu installiert hatte, wurden die fehlenden Klassennamen angezeigt und der Code erfolgreich erstellt.
In der Visual Studio\NuGet-Wiederherstellungspipeline ist ein Fehler aufgetreten ...
Versuchen Sie auch das Gegenteil (kein Vergehen) zu dem, was David Bohunek vorschlägt. Ich habe Davids Vorschlag erfolglos ausprobiert. Dann würde ich die Referenz entfernen, auf die direkt im Abschnitt "Assemblies" verwiesen wurde.
Dann entfernte ich die Web Api 2.2- und Web Api 2.2-Webhost-Nugets, führte eine Bereinigung durch und fügte JUST nur den Web Api 2.2-Webhost NuGet hinzu.
Versuch das. Viel Glück, es hat für mich funktioniert.
Ich habe die meisten der oben aufgeführten Korrekturen ohne Erfolg versucht. Ich bin sicher, dass 9 von 10 normalerweise von den obigen Beiträgen gelöst werden, außer für diesen Fehler, aber keiner von diesen hat mir geholfen.
Mein Fix für diesen Fehler bestand darin, dass ich meinen Namespace umbenannte und zwei unterschiedliche Verweise auf den Namespace hatte, was am Ende zu meinem Problem führte. Da ich den Namespace mit etwas anderem als dem, mit dem ich angefangen habe, aktualisieren wollte, habe ich dieses Problem behoben, indem ich meinen Namespace in meinem neueren WebApiConfig.cs
in den neueren geändert habe. Anscheinend war es eine der letzten Dateien, bei der ich den neueren Namensraumnamen nicht verwendet hatte.
Sobald ich das geändert habe, sind meine Fehler verschwunden. Ein weiterer Fix für dieses Problem bestand darin, using old namespace name;
anzugeben, wodurch es vorübergehend behoben wurde. Daher musste ich es einfach in WebApiConfig.cs
mit dem neuen Namen umbenennen.