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
asp.net-mvc
asp.net-mvc-5
nuget
John Hadikusumo
źródło
źródło
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”.
źródło
bindingRedirect
konfigurację,<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
ale zmieniliśmy ją, aby była używana4.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!Zrobiłem,
Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
ale 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.
źródło
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
źródło
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
źródło
Odinstalowanie i ponowne zainstalowanie pakietu NuGet zadziałało dla mnie.
Wykonaj to w konsoli Menedżera pakietów:
UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
źródło