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

125

Просто обновили проект 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 или мне нужно делать это вручную?

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

Ответы:

206

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

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

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

  1. Перейдите в «Управление пакетами NuGet»
  2. Выберите установленный пакет «Microsoft ASP.NET Web API 2.1».
  3. Нажмите «Управление» и проверьте проекты, которые я вручную добавил ранее.
Тони
источник
Удаление пакета и немедленная его переустановка исправят это для меня. Произошло при запуске проекта на другой машине разработки. Автоматическое восстановление пакета каким-то образом получило неправильную версию.
Мэтт Дж.
1
Основная проблема заключается в обновлении Web.Api для основного проекта, но упомянутые проекты все еще используют его более старую версию. Его следует обновить вместе, щелкнув правой кнопкой мыши имя решения и меню «Управление пакетами Nuget», как указано в @Tony. ура!
Orhaan
Инсталляционный пакет Microsoft.AspNet.WebApi.Core
C Sharper