Jak zdobyć 'System.Web.Http, Version = 5.2.3.0?


88

Właśnie utworzyłem projekt MVC5 i dodałem kilka pakietów z nuget, ale kiedy skompilowałem projekt, otrzymałem ten błąd. Wygląda na to, że jeden z pakietów naprawdę zależy od wersji system.web.http 5.2.3.0, której nigdzie nie mogłem znaleźć. Zastanawiam się tylko, jak zdobyć najnowszą wersję system.web.http?

Błąd 2 Zestaw „System.Web.Http.WebHost, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35” używa „System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35”, który ma wersja wyższa niż zestaw przywoływany '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

Odpowiedzi:


117

W konsoli Menedżera pakietów

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


Zrobiłem, ale nadal wyświetla mi się ten sam błąd <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Próba rozwiązania zależności 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) ”. Próba rozwiązania zależności „Newtonsoft.Json (≥ 6.0.4)”. „Microsoft.AspNet.WebApi.Core 5.2.3” jest już zainstalowany. www.ptsol.com.au ma już odniesienie do „Microsoft.AspNet.WebApi.Core 5.2.3”. </pre>
John Hadikusumo

4
@JohnHadikusumo zrób to dla wszystkich swoich projektów. Wygląda na to, że masz zależny projekt ze starszą wersją.
Rap

Tak, to zadziała. Uważnie przeczytaj plik Web.config i packages.config zarówno przed, jak i po uruchomieniu tego polecenia, a zobaczysz, co się zmieniło.
AlfredBr

Rozwiązał mój problem.
Phon Soyang,

19

Jednym ze sposobów rozwiązania tego problemu jest modyfikacja przekierowania zestawu w pliku web.config.

Zmodyfikuj następujące elementy:

<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>

do

<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>

Dlatego atrybut oldVersion powinien zmienić się z „...- 4.0.0.0” na „...- 5.2.3.0”.


To zadziałało dla mnie. Mieliśmy bindingRedirectkonfigurację, <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />ale zmieniliśmy ją, aby była używana 4.0.0.0. Nadal nie ma to dla mnie sensu, ponieważ powinno używać biblioteki DLL pakietu NuGet, a nie wersji GAC, ale hej, zadziałało ... dzięki!
jamiebarrow

8

Zrobiłem, Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3ale nadal nie działało. Następnie przejrzałem folder bin mojego projektu i zobaczyłem, że nadal zawiera stary plik System.Web.Mvc.

Więc ręcznie skopiowałem nowszy plik z pakietu do folderu bin. Potem znów byłem gotowy do pracy.


7

Zainstaluj pakiet Microsoft.AspNet.WebApi.Core - wersja 5.2.3

Następnie w projekcie Dodaj odniesienie -> Przeglądaj. Naciśnij przycisk przeglądania i przejdź do C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 i dodaj potrzebny plik .dll


7

Pakiety, które zainstalowałeś, wprowadziły zależności do bibliotek dll w wersji 5.2.3.0, jak pokazał powyżej użytkownik Bracher. Przykładowym pakietem jest Microsoft.AspNet.WebApi.Cors. Ścieżka, którą wybieram, to zaktualizowanie proir projektu MVC do dowolnej instalacji pakietu:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

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


3

Odinstalowanie i ponowne zainstalowanie pakietu NuGet zadziałało dla mnie.

  1. Usuń wszelkie stare odniesienia z projektu.

Wykonaj to w konsoli Menedżera pakietów:

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

Właśnie ten rozwiązał mój problem. Zrobiłem tak dużo, a wygrana akcja była taka prosta.
George Lanetz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.