Agregué el paquete Odata v4 a mi API, noté que actualizó mi paquete Microsoft.AspNet.WebApi a la versión 5.2.3 . Pero cuando trato de usar
La configuración del generador de odata en mi WebApiConfig muestra un error como 'No se pudo cargar el archivo o el ensamblaje 'System.Web.Http, Version = 5.2.2.0' .
config.MapODataServiceRoute("odata", null, GetEdmModel(), new DefaultODataBatchHandler(GlobalConfiguration.DefaultServer)); Busqué esta versión (5.2.2) en mi proyecto, pero todo es 5.2.3 y también actualicé todos los paquetes para resolver este problema, pero fallé. Copiar a la propiedad Local también es cierto para System.Web.Http dll.
¿Alguna idea?
Visual Studio resolvió esto para mí. Los conflictos de versión se muestran como una advertencia y, cuando hice clic, agregué automáticamente la redirección de enlace a mi configuración web.
https://msdn.microsoft.com/en-us/library/2fc472t2.aspx
La redirección vinculante que resolvió mi problema es,
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Http" publicKeyToken="31BF3856AD364E35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31BF3856AD364E35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly> </assemblyBinding>Bueno, esta no es una solución "real", sino una solución alternativa: cambié machine.config y reemplacé <runtime /> con
<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" /> </dependentAssembly> </assemblyBinding> </runtime>así que funciona, pero si tiene otros sitios web en ejecución...