referencia puede newtonsoft neutral net manifiesto excepción ensamblado definición con coincide cargar archivo 0x80131040 .net json.net .net-assembly

.net - neutral - no se puede cargar el ensamblado newtonsoft json



No se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'' o una de sus dependencias (2)

Este único error me está volviendo loco.

Instalé el paquete SendGrid NuGet en una de mis bibliotecas de clase llamada BaseServices , que tiene una dependencia en Newtonsoft.Json v7.0.1 , por lo que instala eso en mi carpeta de paquetes y lo referencia.

En la biblioteca de la clase, tengo esta redirección de enlace:

<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" /> </dependentAssembly>

En el archivo web.config de la aplicación ASP.NET MVC, es decir, la aplicación cliente que usa mi biblioteca de clases, tengo un ensamblaje vinculante para redirigir las versiones inferiores a v6 para que apunten a la v6 de la biblioteca Newtonsoft.Json de la siguiente manera:

<dependentAssembly> <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" /> </dependentAssembly>

Cuando ejecuto mi código de envío de correo electrónico que está en la biblioteca de BaseServices , obtengo este error:

El hilo 0x1a4c ha salido con el código 0 (0x0). System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 7.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'' o una de sus dependencias. La definición del manifiesto del ensamblaje ubicado no coincide con la referencia de ensamblaje. (Excepción de HRESULT: 0x80131040) Nombre de archivo: ''Newtonsoft.Json, Version = 7.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed'' en SendGrid.Helpers.Mail.Mail.Get () en BaseServices.EmailService.SendAsync (mensaje de EmailMessage ) en MyFolder / BaseServices / EmailService.cs: línea 39

=== Información de estado de enlace previo === LOG: DisplayName = Newtonsoft.Json, Version = 7.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed (Completamente especificado) LOG: Appbase = file: /// MyFolder / Web / REGISTRO: Initial PrivatePath = MyFolder / Web / bin Conjunto de llamadas: SendGrid, Version = 7.0.3.0, Culture = neutral, PublicKeyToken = 4f047e93159395ca. === LOG: Este enlace se inicia en el contexto de carga predeterminado. LOG: Usando el archivo de configuración de la aplicación: MyFolder / Web / web.config LOG: Usando el archivo de configuración del host: C: / Users / computadora / Documents / IISExpress / config / aspnet.config LOG: Usando el archivo de configuración de la máquina desde C: / Windows / Microsoft .NET / Framework / v4.0.30319 / config / machine.config. LOG: Referencia posterior a la política: Newtonsoft.Json, Version = 7.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed LOG: Intentando descargar el nuevo archivo URL: /// C: / Users / computer / AppData / Local / Temp / Temporal Archivos ASP.NET / root / ef9cacdf / e639667a / Newtonsoft.Json.DLL. LOG: Intentando descargar el nuevo archivo URL: /// C: / Users / computadora / AppData / Local / Temp / ASP.NET Files / root / ef9cacdf / e639667a / Newtonsoft.Json / Newtonsoft.Json.DLL. LOG: Intentando descargar el nuevo archivo URL: ///MyFolder/Web/bin/Newtonsoft.Json.DLL. WRN: La comparación del nombre del ensamblado resultó en la falta de coincidencia: Versión principal ERR: Error al completar la configuración del ensamblaje (hr = 0x80131040). Sonda terminada.


He tenido esta locura me ha pasado bastante. Debe asegurarse de que la versión del ensamblaje de Newtonsoft.Json sea coherente en estos lugares:

  • Referencias del proyecto (versión dll)
  • Web.config
  • Packages.config

Tienes 2 versiones diferentes de la biblioteca JSON.NET en tu solución. Para resolver esto, debe actualizarlos a la última versión. Sigue estos pasos:

  1. Explorador de solución abierta
  2. Haga clic derecho en el nombre de la solución
  3. Seleccione Administrar paquetes de Nuget para la solución
  4. Seleccione Actualizaciones desde el menú
  5. Actualizar el paquete JSON.NET

Esto resolverá tu problema.