RavendB y Signalr Nuget Package Dependency Conflicto
Pregunta
Conflicto básico.
Signalr quiere newtonsoft.json versión 4.0.7 o superior, mientras que RavendB quiere una versión igual a 4.0.5. Lo que obviamente significa que no se pueden instalar uno al lado del otro.
Entonces, además de descargar el código fuente de uno de ellos y obtener las dependencias que se resuelven localmente y luego tener que verificar en el binario creado a partir de eso, hay una forma posible de mantener las dependencias administradas con Nuget, y tal vez solo reenviar las llamadas DLL ( como MVC lo hace con cada nueva versión, por ejemplo)?
Solución
Nos encontramos con el mismo problema hace unos días y este es desagradable. Descubrimos que no puede mantener las dependencias administradas con Nuget. En cambio, hemos cambiado SignalR para usar 4.0.5 y lo compilamos localmente.
Otros consejos
Incluso hay una forma más apropiada de trabajar en torno a este conflicto. Ya que .net nos da la posibilidad de ensamblajes de redirigir, ¿Por qué no usarlo;)
Puede agregar algo así a su aplicación.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.8.0" newVersion="4.0.5.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
Con este conjunto de redireccionamiento, simplemente puede agregar el paquete RavendB y el paquete SignalR (cada uno de ellos se refiere a otra versión de JSON.NET) y hace la solución.
Además hice un Solicite la solicitud en SignalR Para solicitar soporte para json.net en la versión 4.0.5 también (ya que debe ser compatible con retroceso)