Где найти пакет 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>

У меня есть 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.