¿Cómo obtener 'System.Web.Http, Version = 5.2.3.0?

88

Acabo de crear un proyecto MVC5 y agregué varios paquetes de nuget, pero luego, cuando compilé el proyecto, recibí este error. Parece que uno de los paquetes realmente depende de system.web.http versión 5.2.3.0, que no pude encontrar en ninguna parte. Me pregunto cómo obtener la última versión de system.web.http.

Error 2 Assembly 'System.Web.Http.WebHost, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' uses 'System.Web.Http, Version = 5.2.3.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' que tiene una versión superior al ensamblado 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
fuente

Respuestas:

117

En la consola del administrador de paquetes

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

Roman Patutin
fuente
Lo hice, pero todavía me da el mismo error <br/> <pre> PM> install-package microsoft.aspnet.webapi.core -version 5.2.3 Intentando resolver la dependencia 'Microsoft.AspNet.WebApi.Client (≥ 5.2.3 ) '. Intentando resolver la dependencia 'Newtonsoft.Json (≥ 6.0.4)'. 'Microsoft.AspNet.WebApi.Core 5.2.3' ya está instalado. www.ptsol.com.au ya tiene una referencia a 'Microsoft.AspNet.WebApi.Core 5.2.3'. </pre>
John Hadikusumo
4
@JohnHadikusumo haga esto para todos sus proyectos. Parece que tiene un proyecto dependiente con una versión anterior.
Rap
Sí, esto funcionará. Lea atentamente su Web.config y su packages.config antes y después de ejecutar este comando y verá lo que cambió.
AlfredBr
Resolvió mi problema.
Phon Soyang
19

Una forma de solucionarlo es modificando el redireccionamiento del ensamblado en el archivo web.config.

Modifique lo siguiente:

<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>

a

<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>

Así que el atributo oldVersion debería cambiar de "...- 4.0.0.0" a "...- 5.2.3.0".

Bracher
fuente
Esto funcionó para mí. Teníamos la bindingRedirectconfiguración como, <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />pero la cambiamos para usarla 4.0.0.0. Todavía no tiene sentido para mí, porque debería usar la DLL del paquete NuGet y no la versión GAC, pero bueno, funcionó ... ¡así que gracias!
jamiebarrow
8

Lo hice, Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3pero aún así no funcionó. Luego miré en la carpeta bin de mi proyecto y vi que todavía tenía el antiguo archivo System.Web.Mvc.

Así que copié manualmente el archivo más nuevo del paquete a la carpeta bin. Luego estaba en funcionamiento de nuevo.

Bob Koury
fuente
7

Paquete de instalación Microsoft.AspNet.WebApi.Core -versión 5.2.3

Luego, en el proyecto Agregar referencia -> Examinar. Presione el botón de exploración y vaya a C: \ Users \ UserName \ Documents \ Visual Studio 2015 \ Projects \ ProjectName \ packages \ Microsoft.AspNet.Mvc.5.2.3 \ lib \ net45 y agregue el archivo .dll necesario

Vitali Siamenau
fuente
7

Los paquetes que instaló introdujeron dependencias a la versión 5.2.3.0 dll como el usuario Bracher mostró arriba. Microsoft.AspNet.WebApi.Cors es un paquete de ejemplo. El camino que tomo es actualizar el proir del proyecto MVC a cualquier paquete que se instale:

Install-Package Microsoft.AspNet.Mvc -Version 5.2.3

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

Doug Wiley
fuente
3

Desinstalar y reinstalar el paquete NuGet funcionó para mí.

  1. Elimine cualquier referencia anterior del proyecto.

Ejecute esto en la consola del administrador de paquetes:

  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
fuente
Solo este resolvió mi problema. He hecho mucho y ganar acción fue muy simple.
George Lanetz