Gdzie mogę znaleźć pakiet NuGet do uaktualnienia do System.Web.Http v5.0.0.0?


125

Właśnie zaktualizowałem projekt ASP.NET MVC4 do korzystania z Unity.WebApi w wersji 5.0.0.0 i wymaga System.Web.Http v 5.0.0.0 zgodnie z następującym błędem:

Assembly 'Unity.WebApi, Version=5.1.0.0, Culture=neutral, PublicKeyToken=43da31bc42a85347' uses 'System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' which has a higher version than referenced assembly 'System.Web.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'   

Obecnie odwołuję się do System.Web.Http v4.0, ale mam następujące pakiety NuGet zaktualizowane do ich odpowiednich najnowszych wersji:

  • ANTLRv3

  • Dostawcy uniwersalni Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Razor Microsoft ASP.NET

  • Biblioteki podstawowe dostawców uniwersalnych dostawców platformy Microsoft ASP.NET

  • Dostawcy uniwersalni Microsoft ASP.NET

  • Klient Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2 Core

  • Host sieci Web Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2

  • Strona internetowa Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • WebGrease

    za pośrednictwem NuGet. Nie wymieniłem odpowiednich bibliotek JavaScript, takich jak Micrososft.jQuery.Unobtrusive Validation itp.

Co to jest pakiet NuGet do uaktualnienia System.Web.Http czy muszę to zrobić ręcznie?


Jeśli wybierzesz opcję „Uwzględnij wersję wstępną” zamiast „Stabilny” w Menedżerze pakietów NuGet, zobaczysz System.Web.Http. Czy tego szukasz?
William

czy mam szukać System.Web.Http po wybraniu opcji „Uwzględnij wersję wstępną”? Albo gdzie powinienem szukać?
Klaus Nji,

Zignoruj ​​mój powyższy komentarz! Ten pakiet jest nieaktualny. Powinieneś spróbować zastosować się do sugestii Stjina poniżej. O dziwo, kiedy instaluję Unity.WebApi w moim projekcie MVC 4, automatycznie aktualizuje odwołanie System.Web.Http do wersji 5.0, więc nie jestem pewien, dlaczego to nie działa. Jeśli wszystko inne zawiedzie, możesz spróbować odinstalować pakiet Unity i zainstalować go ponownie.
William

Odpowiedzi:


206

Potrzebujesz pakietu Microsoft.AspNet.WebApi.Core .

Możesz to zobaczyć w pliku .csproj:

<Reference Include="System.Web.Http, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\packages\Microsoft.AspNet.WebApi.Core.5.0.0\lib\net45\System.Web.Http.dll</HintPath>
</Reference>

Mam Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) uaktualniony do wersji 5.0.0.0, jak wymieniono powyżej. Wygląda na to, że muszę je usunąć i ponownie dodać?
Klaus Nji,

7
Musiał również wyczyścić, usunąć bin_deployableAssemblies i odbudować.
Klaus Nji,

Mając prawie ten sam projekt. Gdzie jest folder bin_deployable Assemblies, o którym wszyscy mówią?
nzondlo

@nzondlo Uważam, że folder jest generowany podczas publikowania aplikacji. Nie jestem jednak do końca pewien.
user247702

1
@nzondlo bin_deployableAssembliesto zwykły folder, ale jest traktowany w specjalny sposób, gdy znajduje się w katalogu twojego projektu. Każdy plik .dll w tym folderze jest kopiowany do katalogu bin podczas publikowania aplikacji internetowej. Został użyty do wdrożenia biblioteki dll System.Web.Mvc (i innych) z aplikacją internetową, zanim NuGet stał się głównym nurtem.
Steven Liekens

9

Mam kilka projektów w rozwiązaniu. W przypadku niektórych projektów wcześniej ręcznie dodałem odniesienia. Gdy użyłem NuGet do zaktualizowania pakietu WebAPI, te odwołania nie zostały zaktualizowane automatycznie.

Dowiedziałem się, że mogę ręcznie zaktualizować te odniesienia, aby wskazywały na bibliotekę DLL v5 w folderze Packages mojego rozwiązania, lub wykonać następujące czynności.

  1. Przejdź do „Zarządzaj pakietami NuGet”
  2. Wybierz zainstalowany pakiet „Microsoft ASP.NET Web API 2.1”
  3. Kliknij Zarządzaj i sprawdź projekty, które wcześniej dodałem ręcznie.

Odinstalowanie pakietu, a następnie natychmiastowa ponowna instalacja, naprawiło to za mnie. Zdarzyło się podczas przenoszenia projektu na inną maszynę programistyczną. Automatyczne przywracanie pakietu w jakiś sposób otrzymało niewłaściwą wersję.
Matt J.

1
Głównym problemem jest aktualizacja Web.Api dla głównego projektu, ale projekty, do których istnieją odniesienia, nadal używają jego starszej wersji. Powinien zostać zaktualizowany razem, klikając prawym przyciskiem myszy nazwę rozwiązania i menu Zarządzaj pakietami Nuget, jak wspomniał @Tony. Twoje zdrowie!
Orhaan

Zainstaluj pakiet Microsoft.AspNet.WebApi.Core
C Sharper
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.