Mi servicio de Windows está en la misma solución que un proyecto MVC.
El proyecto MVC usa una referencia a SignalR Client que requiere Newtonsoft.Json v6 +
el servicio de Windows usa System.Net.Http.Formatting, que requiere la versión 4.5.0.0 de Newtonsoft.Json.
Supuse que esto no sería un problema, ya que solo podía usar una redirección de enlace en mi App.Config, sin embargo, aparece un error de
Se produjo una excepción no controlada del tipo 'System.IO.FileLoadException' en System.Net.Http.Formatting.dll
Información adicional: no se pudo cargar el archivo o ensamblado 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' o una de sus dependencias. La definición del manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (Excepción de HRESULT: 0x80131040)
mi app.config tiene lo siguiente:
<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0"/> </dependentAssembly>Lo agregué yo mismo, y no funciona, también intenté desinstalar y volver a instalar Json.Net con el administrador de paquetes nuget, sin éxito
Enfrentamos el mismo error y luchamos por solucionarlo durante unos días. Finalmente, encontramos esta publicación sobre el desbordamiento de la pila . La referencia de ensamblaje no se puede resolver: ¿problema de ensamblaje dependiente?
Esto nos hizo darnos cuenta de que buscábamos la versión de System.Net.Http.Formatting que se usaba y descubrimos que nuestra solución había estado usando varias versiones de System.Net.Http.Formatting.dll y que cada una de ellas hacía referencia a una versión diferente de Newtonsoft.Json.dll .
Al eliminar las referencias de la versión anterior de System.Net.Http.Formatting y volver a agregar referencias, se solucionó el problema.
Espero que ayude.
¿La etiqueta assemblyBinding tiene un esquema xmlns adecuado? Compruebe si el problema que está encontrando es el mismo que la redirección de enlace de ensamblaje no funciona
@ chintan123 en realidad me señaló en la dirección correcta, resulta que a pesar de que la biblioteca de clases que estaba creando tenía una referencia tanto a System.Net.Http.Formatting como a Newtonsoft.Json , solo el primero se estaba copiando en el directorio bin del llamando al proyecto que lo necesitaba.
Agregar una referencia a Newtonsoft.Json al proyecto de llamada principal solucionó el problema.