¿Dónde puedo encontrar un paquete NuGet para actualizar a System.Web.Http v5.0.0.0?

125

Acabo de actualizar un proyecto ASP.NET MVC4 para usar Unity.WebApi versión 5.0.0.0 y requiere System.Web.Http v 5.0.0.0 según el siguiente error:

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'   

Actualmente estoy haciendo referencia a System.Web.Http v4.0 pero tengo los siguientes paquetes NuGet actualizados a sus respectivas versiones más recientes:

  • ANTLRv3

  • Proveedores universales de Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • Microsoft ASP.NET MVC

  • Microsoft ASP.NET Razor

  • Bibliotecas principales de proveedores universales de Microsoft ASP.NET

  • Proveedores universales de Microsoft ASP.NET

  • Cliente Microsoft ASP.NET Web API 2

  • Microsoft ASP.NET Web API 2 Core

  • Host web de Microsoft ASP.NET Web API 2

  • API web 2 de Microsoft ASP.NET

  • Página web Microsoft ASP.NET

  • Microsoft.Web.Infrastructure

  • WebGrease

    a través de NuGet. No he enumerado bibliotecas de JavaScript relevantes como Micrososft.jQuery.Unobtrusive Validation, etc.

¿Cuál es el paquete NuGet para actualizar System.Web.Http o tengo que hacerlo manualmente?

Klaus Nji
fuente
Si selecciona "Incluir versión preliminar" en lugar de "Estable" en el Administrador de paquetes NuGet, verá System.Web.Http. ¿Es eso lo que estás buscando?
William
¿se supone que debo buscar System.Web.Http después de seleccionar "Incluir versión preliminar"? ¿O dónde debería estar mirando?
Klaus Nji
¡Ignora mi comentario anterior! Ese paquete está desactualizado. Debe intentar seguir la sugerencia de Stjin a continuación. Curiosamente, cuando instalo Unity.WebApi en mi proyecto MVC 4, actualiza la referencia System.Web.Http a v5.0 automáticamente, por lo que no estoy seguro de por qué no funciona para usted. Si todo lo demás falla, puede intentar desinstalar el paquete de Unity y reinstalarlo.
William

Respuestas:

206

Necesita el paquete Microsoft.AspNet.WebApi.Core .

Puede verlo en el archivo .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>
usuario247702
fuente
Tengo Microsoft ASP.NET Web API 2 Core (id = Microsoft.AspNet.WebApi.Core) actualizado a v5.0.0.0 como se menciona anteriormente. Parece que necesito eliminarlos y volver a agregarlos.
Klaus Nji
77
También tuve que limpiar, eliminar bin_deployableAssemblies y reconstruir.
Klaus Nji
Tener casi exactamente el mismo proyecto. ¿Dónde está la carpeta bin_deployable Assemblies de la que todos siguen hablando?
nzondlo
@nzondlo Creo que esa carpeta se genera al publicar una aplicación. Aunque no del todo seguro.
user247702
1
@nzondlo bin_deployableAssemblieses solo una carpeta normal, pero recibe un tratamiento especial cuando existe en el directorio de su proyecto. Cualquier archivo .dll en esa carpeta se copia en el directorio bin cuando publica su aplicación web. Se usó para implementar System.Web.Mvc dll (y otros) con su aplicación web antes de que NuGet se generalizara.
Steven Liekens
9

Tengo varios proyectos en una solución. Para algunos de los proyectos, previamente agregué las referencias manualmente. Cuando usé NuGet para actualizar el paquete WebAPI, esas referencias no se actualizaron automáticamente.

Descubrí que puedo actualizar manualmente esas referencias para que apunten a la DLL v5 dentro de la carpeta Paquetes de mi solución o haga lo siguiente.

  1. Vaya a "Administrar paquetes NuGet"
  2. Seleccione el paquete instalado "Microsoft ASP.NET Web API 2.1"
  3. Haga clic en Administrar y verifique los proyectos que agregué manualmente antes.
Tony
fuente
Desinstalar el paquete y luego reinstalarlo de inmediato lo solucionó por mí. Sucedió al llevar el proyecto a una máquina de desarrollo diferente. La restauración automática de paquetes obtuvo la versión incorrecta de alguna manera.
Matt J.
1
El problema principal es actualizar Web.Api para el proyecto principal, pero los proyectos a los que se hace referencia todavía usan una versión anterior. Debe actualizarse conjuntamente haciendo clic con el botón derecho en el menú Nombre de la solución y Administrar paquetes Nuget como se menciona en @Tony. ¡salud!
Orhaan
Install-Package Microsoft.AspNet.WebApi.Core
C Sharper