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
John Hadikusumo
quelle

Antworten:

117

In der Package Manager-Konsole

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

Römischer Patutin
quelle
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.

Bracher
quelle
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.

Bob Koury
quelle
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

Vitali Siamenau
quelle
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

Doug Wiley
quelle
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
Ram Kishore K.
quelle
Nur dieser hat mein Problem gelöst. Ich habe so viel getan und Win-Action war so einfach.
George Lanetz