Onde posso encontrar um pacote NuGet para atualizar para o System.Web.Http v5.0.0.0?

125

Apenas atualizei um projeto do ASP.NET MVC4 para usar o Unity.WebApi versão 5.0.0.0 e requer System.Web.Http v 5.0.0.0 conforme o seguinte erro:

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'   

Atualmente, estou fazendo referência ao System.Web.Http v4.0, mas os seguintes pacotes do NuGet foram atualizados para suas respectivas versões mais recentes:

  • ANTLRv3

  • Provedores universais do Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET Razor

  • Bibliotecas principais do Microsoft ASP.NET Universal Providers

  • Provedores universais do Microsoft ASP.NET

  • Cliente da API da Web do Microsoft ASP.NET 2

  • Núcleo da API da Web do Microsoft ASP.NET 2

  • Host da Web API 2 da Microsoft ASP.NET

  • API da Web do Microsoft ASP.NET 2

  • Página da Web Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • WebGrease

    via NuGet. Não listei bibliotecas JavaScript relevantes, como Micrososft.jQuery.Unobtrusive Validation, etc.

O que é o pacote NuGet para atualizar o System.Web.Http ou preciso fazer isso manualmente?

Klaus Nji
fonte
Se você selecionar "Incluir pré-lançamento" em vez de "Estável" no NuGet Package Manager, verá System.Web.Http. É isso que você está procurando?
William
eu deveria estar procurando System.Web.Http depois de selecionar "Incluir pré-lançamento"? Ou para onde devo procurar?
Klaus Nji
Desconsidere meu comentário acima! Esse pacote está desatualizado. Você deve tentar seguir a sugestão de Stjin abaixo. Estranhamente, quando instalo o Unity.WebApi no meu projeto MVC 4, ele atualiza automaticamente a referência System.Web.Http para a v5.0, por isso não sei por que ele não está funcionando para você. Se tudo mais falhar, você pode tentar desinstalar o pacote Unity e reinstalá-lo.
William

Respostas:

206

Você precisa do pacote Microsoft.AspNet.WebApi.Core .

Você pode vê-lo no arquivo .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
fonte
Eu tenho o Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) atualizado para a v5.0.0.0, conforme listado acima. Parece que preciso removê-los e adicioná-los novamente?
Klaus Nji
7
Também precisava limpar, excluir bin_deployableAssemblies e reconstruir.
Klaus Nji
Tendo quase exatamente o mesmo projeto. Onde está a pasta Assemblies bin_deployable da qual todo mundo continua falando?
Nzondlo 26/11
@nzondlo Acredito que a pasta seja gerada ao publicar um aplicativo. Não tenho muita certeza.
user247702
1
O @nzondlo bin_deployableAssembliesé apenas uma pasta comum, mas recebe tratamento especial quando existe no diretório do seu projeto. Qualquer arquivo .dll nessa pasta é copiado para o diretório bin quando você publica seu aplicativo Web. Foi usado para implantar a dll System.Web.Mvc (e outros) com seu aplicativo Web antes do NuGet se tornar popular.
Steven Liekens
9

Eu tenho vários projetos em uma solução. Para alguns dos projetos, eu adicionei as referências anteriormente manualmente. Quando usei o NuGet para atualizar o pacote WebAPI, essas referências não foram atualizadas automaticamente.

Descobri que posso atualizar manualmente essas referências para que aponte para a DLL v5 dentro da pasta Packages da minha solução ou faça o seguinte.

  1. Vá para "Gerenciar pacotes NuGet"
  2. Selecione o pacote instalado "Microsoft ASP.NET Web API 2.1"
  3. Clique em Gerenciar e verifique os projetos que eu adicionei manualmente antes.
Tony
fonte
Desinstalar o pacote e reinstalá-lo imediatamente, corrige-o para mim. Aconteceu ao iniciar o projeto em uma máquina de desenvolvimento diferente. A restauração automática de pacotes obteve a versão errada de alguma forma.
Matt J.
1
O principal problema é atualizar o Web.Api para o projeto principal, mas os projetos referenciados ainda estão usando a versão mais antiga. Ele deve ser atualizado juntos clicando com o botão direito do mouse no nome da solução e no menu Gerenciar pacotes de nuget, como o @Tony mencionado. Felicidades!
22614 Orhaan
Pacote de instalação Microsoft.AspNet.WebApi.Core
C Sharper