Где я могу найти пакет NuGet для обновления до System.Web.Http v5.0.0.0?

Просто обновили проект ASP.NET MVC4 для использования Unity.WebApi версии 5.0.0.0, и для него требуется System.Web.Http v 5.0.0.0 в соответствии со следующей ошибкой:

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'   

В настоящее время я ссылаюсь на System.Web.Http v4.0, но следующие пакеты NuGet обновлены до соответствующих последних версий:

  • ANTLRv3

  • Универсальные поставщики Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET Razor

  • Основные библиотеки универсальных поставщиков Microsoft ASP.NET

  • Универсальные поставщики Microsoft ASP.NET

  • Клиент Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2 Core

  • Веб-хост Microsoft ASP.NET Web API 2

  • Веб-API Microsoft ASP.NET 2

  • Веб-страница Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • WebGrease

    через NuGet. Я не перечислил соответствующие библиотеки JavaScript, такие как Micrososft.jQuery.Unobtrusive Validation и т. Д.

Что такое пакет NuGet для обновления System.Web.Http или мне нужно делать это вручную?


person Klaus Nji    schedule 25.11.2013    source источник
comment
Если вы выберете «Включить предварительную версию» вместо «Стабильная» в диспетчере пакетов NuGet, вы увидите System.Web.Http. Это то, что вы ищете?   -  person William    schedule 26.11.2013
comment
я должен искать System.Web.Http после выбора "Включить предварительную версию"? Или где мне искать?   -  person Klaus Nji    schedule 26.11.2013
comment
Не обращайте внимания на мой комментарий выше! Этот пакет устарел. Вам следует попытаться последовать предложению Стджина ниже. Как ни странно, когда я устанавливаю Unity.WebApi в моем проекте MVC 4, он автоматически обновляет ссылку System.Web.Http на v5.0, поэтому я не уверен, почему он не работает для ты. Если все остальное не помогло, вы можете попробовать удалить пакет Unity и переустановить его.   -  person William    schedule 26.11.2013


Ответы (2)


Вам понадобится пакет Microsoft.AspNet.WebApi.Core.

Вы можете увидеть это в файле .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>
person user247702    schedule 25.11.2013
comment
У меня есть Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core), обновленный до версии 5.0.0.0, как указано выше. Похоже, мне нужно удалить и снова добавить их? - person Klaus Nji; 26.11.2013
comment
Пришлось также очистить, удалить bin_deployableAssemblies и пересобрать. - person Klaus Nji; 26.11.2013
comment
Имея почти такой же проект. Где папка bin_deployable Assemblies, о которой все говорят? - person nzondlo; 27.11.2013
comment
@nzondlo Я считаю, что папка создается при публикации приложения. Хотя не совсем уверен. - person user247702; 27.11.2013
comment
@nzondlo bin_deployableAssemblies - это обычная папка, но она требует особого обращения, если существует в каталоге вашего проекта. Любой файл .dll в этой папке копируется в каталог bin при публикации веб-приложения. Он использовался для развертывания библиотеки DLL System.Web.Mvc (и других) с вашим веб-приложением до того, как NuGet стал основным. - person Steven Liekens; 28.01.2016

У меня в решении несколько проектов. Для некоторых проектов я ранее добавлял ссылки вручную. Когда я использовал NuGet для обновления пакета WebAPI, эти ссылки не обновлялись автоматически.

Я обнаружил, что могу либо вручную обновить эту ссылку, чтобы они указывали на DLL v5 внутри папки Packages моего решения, либо сделать следующее.

  1. Перейдите в «Управление пакетами NuGet»
  2. Выберите установленный пакет «Microsoft ASP.NET Web API 2.1».
  3. Нажмите «Управление» и проверьте проекты, которые я вручную добавлял ранее.
person Tony    schedule 01.02.2014
comment
Удаление пакета и немедленная его переустановка исправят это для меня. Произошло при запуске проекта на другой машине разработки. При автоматическом восстановлении пакета каким-то образом была получена неправильная версия. - person Matt J.; 07.03.2014
comment
Основная проблема заключается в обновлении Web.Api для основного проекта, но упомянутые проекты по-прежнему используют его более старую версию. Его следует обновить вместе, щелкнув правой кнопкой мыши имя решения и меню «Управление пакетами Nuget», как указано в @Tony. ваше здоровье! - person Orhaan; 16.07.2014
comment
Установочный пакет Microsoft.AspNet.WebApi.Core - person C Sharper; 21.05.2018