Ich habe kürzlich begonnen, diesem Handbuch zu folgen , um mein Projekt auf .NET 4.5.1 und Web Api 2 zu migrieren.
Das allererste, was MS-Entwickler Rick Anderson von Ihnen verlangt, ist eine Änderung:
WebApiConfig.Register(GlobalConfiguration.Configuration);
zu
GlobalConfiguration.Configure(WebApiConfig.Register);
in der Datei global.asax. Dies gibt mir jedoch einen Fehler, wenn ich versuche zu bauen:
Fehler 1 'System.Web.Http.GlobalConfiguration' enthält keine Definition für 'Konfigurieren'
Mein Projekt ist derzeit auf MVC 5 und Web Api 2 und .NET 4.5.1, aber ich denke, System.Web.Http glaubt immer noch, dass es die .NEt 4.0-Version ist.
Wie kann ich das beheben?
Danke dir.
Bearbeiten:
Hier sind meine Montagebindungen:
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<!--
<dependentAssembly>
<assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0"/>
</dependentAssembly> -->
</assemblyBinding>
Alles, was nach dem Oben kommentiert wurde, wurde kommentiert, weil ich den Fehler bekam:
Warnung 2 Es wurden Konflikte zwischen verschiedenen Versionen derselben abhängigen Assembly gefunden, die nicht gelöst werden konnten. Diese Referenzkonflikte werden im Erstellungsprotokoll aufgelistet, wenn die Protokollausführlichkeit auf detailliert eingestellt ist.
und die harten Bindungen loszuwerden, reparierte das.
quelle
Microsoft.AspNet.Web.Helpers.Mvc
zuerst deinstalliert ?Antworten:
Es benötigt den system.web.http.webhost, der Teil dieses Pakets ist. Ich habe dies behoben, indem ich das folgende Paket installiert habe:
oder suchen Sie danach in nuget https://www.nuget.org/packages/Microsoft.AspNet.WebApi.WebHost/5.1.0
quelle
GlobalConfiguration.Configure(WebApiConfig.Register);
der Webhost in die global.asax eingefügt wurde, nach der AreaRegistration nach oben, und es hat einwandfrei funktioniert.Microsoft.AspNet.WebApi.WebHost
auf die neueste VersionKeine dieser Ideen hat meinem Projekt mit MVC 5.2.2 geholfen.
Das Erzwingen einer Neuinstallation hat das Problem behoben. Über die NuGet-Paketmanagerkonsole:
update-Package -reinstall Microsoft.AspNet.WebApi.WebHost
quelle
GlobalConfiguration
Klasse ist Teil desMicrosoft.AspNet.WebApi.WebHost
Nuget-Pakets ... Haben Sie dieses Paket auf Web API 2 aktualisiert?quelle
Verwenden Sie nicht nur die Paketmanager-Konsole, um Nuget zum Aktualisieren des Projekts mit Install-Package Microsoft.AspNet.WebApi.WebHost zu veranlassen, da GlobalConfiguration fehlt ,
Ich brauchte das Installationspaket Microsoft.AspNet.WebApi.SelfHost, um mit System.Web.Http zu fehlen .
quelle
Möglicherweise möchten Sie überprüfen, ob Ihr Projekt
Microsoft.AspNet.WebApi.WebHost
installiert wurde. Wie sich herausstellte, wurde in meinem FallMicrosoft.AspNet.WebApi.WebHost
in einem anderen Projekt installiert, aber nicht in dem bestimmten Projekt, das es benötigte. Überprüfen Sie in Ihrer packages.config, ob eine Zeile wie diese vorhanden ist:Wenn dies nicht vorhanden ist, haben Sie es nicht
Microsoft.AspNet.WebApi.WebHost
in Ihrem Projekt installiert. Sie können entweder mit Nuget Package Manager oder über die Package Manager-Konsole installieren. Führen Sie den folgenden Befehl aus, um die Installation über die Package Manager-Konsole durchzuführen:quelle
Die GlobalConfiguration.Configure-API ist in "Microsoft.AspNet.WebApi.WebHost" version = "5.2.3" verfügbar.
und nicht in "Microsoft.AspNet.WebApi.WebHost" version = "4.0.0"
quelle
Wenn das Problem nach der Deinstallation und Installation von Microsoft.AspNet.WebApi.WebHost weiterhin besteht, fügen Sie in web.config Folgendes hinzu, damit die globale Konfiguration funktioniert
quelle
"Install-Package Microsoft.AspNet.WebApi.Core" hat einwandfrei funktioniert.
quelle
Mein Problem war, dass der Nuget-Paketmanager kein echtes Update durchgeführt hat, aber die Dateien Verweise auf ältere Versionen enthielten. Deshalb habe ich zuerst alle installierten MVC-bezogenen Pakete (einschließlich Razor und Web-API) entfernt, sie dann erneut installiert und die Version von aktualisiert das Rasiermesser in views / web.config auf Version 3.0.0.
quelle
Keine dieser Lösungen hat bei mir funktioniert. Ich hatte ein Gewirr von Nuget-Paketen, die aufgrund zirkulärer Abhängigkeiten voneinander nicht aktualisiert werden konnten.
Ich würde das auf die altmodische Weise reparieren müssen. Ich habe ein neues MVC / web api Projekt und manuell kopiert
System.Web.Http
undSystem.Web.Http.WebHost
aus dem neuen Projekt in die Nuget Ordner der exisitng Lösung. Von dort aus habe ich die Referenzen von OMG "Browsing" aktualisiert und das Problem behoben.quelle
Dadurch wurde dieses Problem behoben, indem der Datei Global.asax.cs ein Namespace hinzugefügt wurde.
using System.Web.Http;
Dies löste das Problem.
quelle