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

¿Fue útil?

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)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top