.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:
- Explorador de solución abierta
- Haga clic derecho en el nombre de la solución
- Seleccione Administrar paquetes de Nuget para la solución
- Seleccione Actualizaciones desde el menú
- Actualizar el paquete JSON.NET
Esto resolverá tu problema.