Como obter 'System.Web.Http, Version = 5.2.3.0?

87

Acabei de criar um projeto MVC5 e adicionei vários pacotes do nuget, mas quando compilei o projeto, recebi este erro. Parece que um dos pacotes realmente depende do system.web.http versão 5.2.3.0, que não consegui encontrar em lugar nenhum. Eu só me pergunto como obter a versão mais recente do system.web.http?

Erro 2 Assembly 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' usa 'System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' que tem uma versão superior do assembly referenciado 'System.Web.Http, Version = 5.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' 
d: \ Backup 2014-12-25 \ Website-Projects \ www.ptsol.com.au \ packages \ Microsoft.AspNet.WebApi.WebHost.5.2.3 \ lib \ net45 \ System.Web.Http.WebHost.dll
John Hadikusumo
fonte

Respostas:

117

No console do gerenciador de pacotes

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

Roman Patutin
fonte
Eu fiz, mas ainda me dando o mesmo erro <br/> <pre> PM> pacote de instalação microsoft.aspnet.webapi.core-versão 5.2.3 Tentando resolver a dependência 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. Tentando resolver a dependência 'Newtonsoft.Json (≥ 6.0.4)'. 'Microsoft.AspNet.WebApi.Core 5.2.3' já instalado. www.ptsol.com.au já tem uma referência a 'Microsoft.AspNet.WebApi.Core 5.2.3'. </pre>
John Hadikusumo
4
@JohnHadikusumo faça isso para todos os seus projetos. Parece que você tem um projeto dependente com uma versão mais antiga.
Rap
Sim, isso vai funcionar. Leia cuidadosamente seu Web.config e seu packages.config antes e depois de executar esse comando e você verá o que mudou.
AlfredBr
Resolveu meu problema.
Phon Soyang de
20

Uma maneira de corrigir isso é modificar o redirecionamento do assembly no arquivo web.config.

Modifique o seguinte:

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
</dependentAssembly>

para

<dependentAssembly>
        <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="4.0.0.0" />
</dependentAssembly>

Portanto, o atributo oldVersion deve mudar de "...- 4.0.0.0" para "...- 5.2.3.0".

Bracher
fonte
Isso funcionou para mim. Tínhamos a bindingRedirectconfiguração como, <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />mas mudamos para usar 4.0.0.0. Ainda não faz sentido para mim, porque deveria estar usando a DLL do pacote NuGet e não a versão GAC, mas hey, funcionou ... então obrigado!
jamiebarrow
8

Eu fiz, Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3mas ainda não funcionou. Em seguida, olhei na pasta bin do meu projeto e vi que ele ainda tinha o arquivo System.Web.Mvc antigo.

Então, copiei manualmente o arquivo mais recente do pacote para a pasta bin. Então eu estava de pé e funcionando novamente.

Bob Koury
fonte
7

Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3

Em seguida, no projeto Adicionar Referência -> Navegar. Pressione o botão de navegação e vá para C: \ Usuários \ Nome do usuário \ Documentos \ Visual Studio 2015 \ Projetos \ Nome do projeto \ pacotes \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 e adicione o arquivo .dll necessário

Vitali Siamenau
fonte
7

Os pacotes que você instalou introduziram dependências para a dll da versão 5.2.3.0 como o usuário Bracher mostrou acima. Microsoft.AspNet.WebApi.Cors é um pacote de exemplo. O caminho que sigo é atualizar o proir do projeto MVC para qualquer instalação de pacote:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

https://www.nuget.org/packages/microsoft.aspnet.mvc

Doug Wiley
fonte
3

Desinstalar e reinstalar o pacote NuGet funcionou para mim.

  1. Remova qualquer referência antiga do projeto.

Execute no Console do gerenciador de pacotes:

  1. UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
  2. Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
Ram Kishore K
fonte
Só este resolveu meu problema. Eu fiz muito e a ação de vitória foi tão simples.
George Lanetz