Wie bekomme ich 'System.Web.Http, Version = 5.2.3.0?


87

Ich habe gerade ein MVC5-Projekt erstellt und mehrere Pakete von Nuget hinzugefügt, aber als ich das Projekt kompilierte, bekam ich diesen Fehler. Es scheint, dass eines der Pakete wirklich von system.web.http Version 5.2.3.0 abhängt, die ich nirgendwo finden konnte. Ich frage mich nur, wie ich die neueste Version von system.web.http bekomme.

Fehler 2 Assembly 'System.Web.Http.WebHost, Version = 5.2.3.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35' verwendet 'System.Web.Http, Version = 5.2.3.0, Kultur = neutral, PublicKeyToken = 31bf3856ad364e35' eine höhere Version als die referenzierte Assembly 'System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' 
d: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ packages \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll

Antworten:


117

In der Package Manager-Konsole

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3


Ich habe aber immer noch den gleichen Fehler gegeben <br/> <pre> PM> Installationspaket microsoft.aspnet.webapi.core -version 5.2.3 Versuch, die Abhängigkeit 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. Versuch, die Abhängigkeit 'Newtonsoft.Json (≥ 6.0.4)' aufzulösen. 'Microsoft.AspNet.WebApi.Core 5.2.3' bereits installiert. www.ptsol.com.au hat bereits einen Verweis auf 'Microsoft.AspNet.WebApi.Core 5.2.3'. </ pre>
John Hadikusumo

4
@ JohnHadikusumo tun dies für alle Ihre Projekte. Es scheint, dass Sie ein abhängiges Projekt mit einer älteren Version haben.
Rap

Ja, das wird funktionieren. Lesen Sie Ihre Web.config und Ihre packages.config sorgfältig durch, bevor und nachdem Sie diesen Befehl ausführen, und Sie werden sehen, was sich geändert hat.
AlfredBr

Mein Problem gelöst.
Phon Soyang

20

Eine Möglichkeit, dies zu beheben, besteht darin, die Assemblyumleitung in der Datei web.config zu ändern.

Ändern Sie Folgendes:

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

zu

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="4.0.0.0" />
</dependentAssembly>

Das Attribut oldVersion sollte sich also von "...- 4.0.0.0" in "...- 5.2.3.0" ändern.


Das hat bei mir funktioniert. Wir hatten das bindingRedirectSetup als <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />aber geändert, um es zu verwenden 4.0.0.0. Macht für mich immer noch keinen Sinn, da ich die NuGet-Paket-DLL und nicht die GAC-Version verwenden sollte, aber hey, es hat funktioniert ... also danke!
Jamie Barrow

8

Ich habe Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3es getan, aber es hat immer noch nicht funktioniert. Dann schaute ich in meinen Projekt-Bin-Ordner und stellte fest, dass er noch die alte System.Web.Mvc-Datei hatte.

Also habe ich die neuere Datei manuell aus dem Paket in den Ordner bin kopiert. Dann war ich wieder am Laufen.


7

Installationspaket Microsoft.AspNet.WebApi.Core -version 5.2.3

Dann im Projekt Referenz hinzufügen -> Durchsuchen. Klicken Sie auf die Schaltfläche "Durchsuchen", wechseln Sie zu "C: \ Benutzer \ Benutzername \ Dokumente \ Visual Studio 2015 \ Projekte \ Projektname \ Pakete \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45" und fügen Sie die erforderliche DLL-Datei hinzu


7

Die von Ihnen installierten Pakete führten Abhängigkeiten zu DLLs der Version 5.2.3.0 ein, wie der Benutzer Bracher oben gezeigt hat. Microsoft.AspNet.WebApi.Cors ist ein Beispielpaket. Der Pfad, den ich gehe , besteht darin, das MVC-Projektprogramm auf alle Paketinstallationen zu aktualisieren :

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

https://www.nuget.org/packages/microsoft.aspnet.mvc


2

Das Deinstallieren und erneute Installieren des NuGet-Pakets hat bei mir funktioniert.

  1. Entfernen Sie alle alten Referenzen aus dem Projekt.

Führen Sie dies in der Package Manager-Konsole aus:

  1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
  2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

Nur dieser hat mein Problem gelöst. Ich habe so viel getan und Win-Action war so einfach.
George Lanetz
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.