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
asp.net-mvc
asp.net-mvc-5
nuget
John Hadikusumo
fuente
fuente
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".
fuente
bindingRedirect
configuración como,<bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
pero la cambiamos para usarla4.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!Lo hice,
Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
pero 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.
fuente
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
fuente
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
fuente
Desinstalar y reinstalar el paquete NuGet funcionó para mí.
Ejecute esto en la consola del administrador de paquetes:
UnInstall-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
Install-Package Microsoft.AspNet.WebApi.Core -version 5.2.3
fuente