manifiesto - no se puede cargar el ensamblado newtonsoft json
No se pudo cargar el archivo o ensamblado ''Newtonsoft.Json'' o una de sus dependencias. La definiciĆ³n de manifiesto no coincide con la referencia de ensamblaje (25)
Cosas que he intentado después de buscar:
1) en Web.Config poner un enlace en la versión anterior:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" />
</dependentAssembly>
2) Edite mi archivo .csproj para asegurarme de que solo haya una referencia de Newtonsoft
<Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>../packages/Newtonsoft.Json.6.0.1/lib/net45/Newtonsoft.Json.dll</HintPath>
<SpecificVersion>False</SpecificVersion>
<Private>True</Private>
</Reference>
3) Busque en mi computadora cada Newtonsoft.Json.dll y elimine todas las versiones que no sean 6.0.1 y elimine el contenido de mi carpeta temporal
4) Reparar / Reinstalar el paquete en la consola de Nuget Manager
Lo logra al construir, pero obtiene el error al ir al sitio.
EDITAR
bien, entonces traté de reinstalar como cada paquete nuget, y parece que se volvió a agregar la versión 4.5 de newtonsoft.json.dll, pero estoy obteniendo el mismo error. El freamework de Target de mi proyecto es .NET 4.5.1 y aquí está el seguimiento de la pila que obtengo ahora:
Error del servidor en la aplicación ''/''.
No se pudo cargar el archivo o ensamblado ''Newtonsoft.Json'' 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)
Descripción: se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.
Detalles de la excepción: System.IO.FileLoadException: No se pudo cargar el archivo o ensamblado ''Newtonsoft.Json'' 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)
Error de fuente:
Se generó una excepción no controlada durante la ejecución de la solicitud web actual. La información sobre el origen y la ubicación de la excepción se puede identificar utilizando el seguimiento de pila de excepción a continuación.
Rastreo de carga de ensamblaje: la siguiente información puede ser útil para determinar por qué no se pudo cargar el ensamblado ''Newtonsoft.Json''.
=== Información de estado de enlace previo === REGISTRO: DisplayName = Newtonsoft.Json (Parcial) WRN: Se proporcionó información de enlace parcial para un ensamblado: WRN: Nombre de ensamblado: Newtonsoft.Json | ID de dominio: 2 WRN: se produce un enlace parcial cuando solo se proporciona una parte del nombre para mostrar del ensamblaje. WRN: Esto podría ocasionar que el encuadernador cargue un ensamblaje incorrecto. WRN: Se recomienda proporcionar una identidad textual completamente especificada para el ensamblaje, WRN: que consiste en el nombre simple, versión, cultura y token de clave pública. WRN: consulte el documento técnico http://go.microsoft.com/fwlink/?LinkId=109270 para obtener más información y soluciones comunes a este problema. LOG: Appbase = file: /// c: / users / user / documents / visual studio 2013 / Projects / foo / bar / LOG: Initial PrivatePath = c: / users / user / documents / visual studio 2013 / Projects / foo / bar / bin Conjunto de llamadas: (Desconocido). === LOG: Este enlace se inicia en el contexto de carga predeterminado. LOG: Utilizando el archivo de configuración de la aplicación: c: / users / user / documents / visual studio 2013 / Projects / foo / bar / web.config LOG: Usando el archivo de configuración del host: C: / Users / user / Documents / IISExpress / config / aspnet .config LOG: utilizando el archivo de configuración de la máquina desde C: / Windows / Microsoft.NET / Framework / v4.0.30319 / config / machine.config. LOG: Política que no se aplica a la referencia en este momento (enlace de ensamblaje privado, personalizado, parcial o basado en la ubicación). LOG: Intentando descargar el nuevo archivo URL: /// C: / Users / user / AppData / Local / Temp / 1 / Temporal ASP.NET Files / root / 48686d37 / 9d7a6572 / Newtonsoft.Json.DLL. LOG: Intentando descargar el nuevo archivo URL: /// C: / Users / user / AppData / Local / Temp / 1 / Archivos temporales ASP.NET / root / 48686d37 / 9d7a6572 / Newtonsoft.Json / Newtonsoft.Json.DLL. LOG: Intentando descargar el nuevo archivo URL: /// c: / users / user / documents / visual studio 2013 / Projects / foo / bar / bin / Newtonsoft.Json.DLL. LOG: Utilizando el archivo de configuración de la aplicación: c: / users / user / documents / visual studio 2013 / Projects / foo / bar / web.config LOG: Usando el archivo de configuración del host: C: / Users / user / Documents / IISExpress / config / aspnet .config LOG: utilizando el archivo de configuración de la máquina desde C: / Windows / Microsoft.NET / Framework / v4.0.30319 / config / machine.config. LOG: Redirect encontrado en el archivo de configuración de la aplicación: 4.5.0.0 redirigido a 6.0.1.0. LOG: Referencia posterior a la política: Newtonsoft.Json, Version = 6.0.1.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed LOG: Intentando descargar el nuevo archivo URL: /// C: / Users / user / AppData / Local / Temp / 1 / Archivos temporales ASP.NET / root / 48686d37 / 9d7a6572 / Newtonsoft.Json.DLL. LOG: Intentando descargar el nuevo archivo URL: /// C: / Users / user / AppData / Local / Temp / 1 / Archivos temporales ASP.NET / root / 48686d37 / 9d7a6572 / Newtonsoft.Json / Newtonsoft.Json.DLL. LOG: Intentando descargar el nuevo archivo URL: /// c: / users / user / documents / visual studio 2013 / Projects / foo / bar / 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.
Stack Trace:
[FileLoadException: no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json'' 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)]
[FileLoadException: no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 6.0.1.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)] System.Reflection.RuntimeAssembly._nLoad (AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark y stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 System.Reflection.RuntimeAssembly .nLoad (AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark y stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34 System.Reflection.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark y stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152 System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString, Evidence assemblySecurity, StackCrawlMark y stackMa rk, IntPtr pPrivHostBinder, Boolean forIntrospection) +77 System.Reflection.RuntimeAssembly.InternalLoad (String assemblyString, Evidence assemblySecurity, StackCrawlMark y stackMark, Boolean forIntrospection) +16 System.Reflection.Assembly.Load (String assemblyString) +28 System.Web.Configuration .CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +38
[ConfigurationErrorsException: no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 6.0.1.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)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +752 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory () +218 System.Web.Configuration.CompilationSection.LoadAssembly (AssemblyInfo ai) +130 System.Web.Compilation.BuildManager.GetReferencedAssemblies (CompilationSection compConfig) +170 System.Web.Compilation.BuildManager.GetPreStartInitMethodsFromReferencedAssemblies () +91 System.Web.Compilation.BuildManager.CallPreStartInitMethods (String preStartInitListPath, Boolean & isRefAssemblyLoaded) +285 System.Web.Compilation.BuildManager.ExecutePreAppStart () +153 System.Web.Hosting.HostingEnvironment.Initialize (ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +516
[HttpException (0x80004005): no se pudo cargar el archivo o ensamblado ''Newtonsoft.Json, Version = 6.0.1.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)] System.Web.HttpRuntime.FirstRequestInit (contexto HttpContext) +9913572 System.Web.HttpRuntime.EnsureFirstRequestInit (contexto HttpContext) +101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7WorkerRequestInst, HttpContext context) +254
Información de la versión: Microsoft .NET Framework Version: 4.0.30319; Versión ASP.NET: 4.0.30319.18408
Comentando esta parte en mi web.config resolvió mi problema:
<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>
Pero, por supuesto, debe asegurarse de haber actualizado o tener la versión correcta haciendo esto en la consola de su administrador de paquetes:
update-package Newtonsoft.Json -reinstall
En algunos casos, si elimina sus carpetas Bin
y Obj
, resolverá este problema.
En mi caso, fue solo una cuestión de:
Tools -> NuGet Package Manager -> Package Manager Settings -> Clear Cache
El problema fue causado cuando reasigné una carpeta TFS.
Esta es mi solución a este problema, asegúrese de que el número de versión en appconfig o packageconfig sea el mismo que la versión de referencia en sus referencias. Mira here
Este problema no se solucionó al refrescar los paquetes NuGet o al realizar un "Limpiar" en el proyecto. Fue resuelto borrando manualmente la carpeta "obj".
Estoy usando Newtonsoft.Json v6.0.3, pero esto es lo que tenía que hacer en mi archivo Web.config:
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="6.0.0.0" />
</dependentAssembly>
Tenga en cuenta que, aunque estoy usando 6.0.3, tuve que poner newVersion="6.0.0.0"
En mi archivo packages.config tengo:
<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />
He intentado los pasos de Oleg y trabajaron para mi misma situación.
Pasos:
Ejecute
update-package Newtonsoft.Json -reinstall
en Package Manager.Elimine su
bin
al permitir ver los archivos ocultos y eliminar la carpetabin
.Cierre su Visual Studio y vuelva a abrirlo.
Ahora ejecuta tu proyecto nuevamente. ¡Creo que debería estar bien!
Intenté lo siguiente después de haber asegurado que mi computadora tenía la misma versión en todas las ubicaciones y que mis proyectos apuntaban a la misma ruta de referencia. También me había asegurado de que el enlace de la versión anterior era su y estaba vinculado a la versión actual de dll que tenía.
Trabajo en un entorno con un marco estricto y el equipo del framework a menudo altera las versiones con las diferentes dll.
Cómo solucioné este problema fue ejecutar la consola del administrador de paquetes en Visual Studio (2013). A partir de ahí, ejecuté el siguiente comando:
update-package Newtonsoft.Json -reinstall
seguido por
update-package Newtonsoft.Json
Esto pasó y actualizó todos mis archivos de configuración y archivos de proyecto relevantes. Forzarlos a todos a la misma versión del dll. Que fue inicialmente la versión 4.5 antes de actualizar nuevamente para obtener la última.
Llegué a este problema porque tenía: el proyecto A (un .exe de escritorio) se refiere al proyecto B (un .dll portátil). A & B tenía diferentes versiones de JSON.Net, por lo que hubo un conflicto de cargador. Una vez que hice todas las versiones de JSON.net iguales, funcionó. (Esto es en efecto lo que están haciendo algunas de las soluciones anteriores, solo estoy diciendo por qué funciona)
Lo que realmente me ayudó fue apagar la compilación Resharper y usar la opción Reconstruir VisualStudio en mi proyecto.
Lo resolví quitando la versión inferior de Newtonsoft.json.dll en la carpeta bin y agregué Newtonsoft.json.dll V6.0.0.0 y eliminé los siguientes elementos web.config
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
</dependentAssembly>
Luché con esto recientemente con un proyecto anterior.
Logré rastrear el problema después de verificar qué versión del dll realmente estaba en la carpeta bin.
Tenía un script de creación posterior que copiaba ensamblajes dependientes de una carpeta de la biblioteca dll a la carpeta bin. Una configuración común de los días anteriores a nuget.
Así que cada vez que construí el script post-build reemplacé la versión correcta de Json.net con la versión anterior
Ninguna de estas opciones funcionó para mí, al final lo fue;
Prueba> Configuración de prueba> * .testrunconfig
Tuve que agregar una nueva línea
<DeploymentItem filename="packages/Newtonsoft.Json.4.5.8/lib/net40/Newtonsoft.Json.dll" />
Asegúrese de que la ruta y la versión sean las correctas para su configuración.
Ninguna de las respuestas, incluida la marcada, no funcionó para mí.
La solución fue mucho más simple. Primero eliminé las referencias de mi capa de BUS. Luego eliminó los dll del proyecto (para asegurarse de que no estuvieran) y luego reinstaló JSON.NET de los paquetes nuget. Y la parte difícil fue "apagarlo y encenderlo nuevamente".
Acabo de reiniciar Visual Studio, ¡y funcionó!
Por lo tanto, si intentas todo lo posible y aún no puedes resolver el problema, solo intenta apagar y encender Visual Studio nuevamente, podría ser útil.
No sé por qué, pero en mi caso, incluso si elimino la carpeta bin del proyecto, cuando construyo el proyecto copia la versión anterior de newtonsoft.json, copié el dll de la nueva versión de la carpeta de paquetes y lo resuelve por el momento.
Ok, creo que lo hice funcionar ahora. Eliminé cada Newtonsoft.Json.dll en mi máquina que no era la última versión que pude encontrar, me aseguré de tener la última versión en NuGet y la construí y me aseguré de que fuera la última en la carpeta bin, y Dejé los cambios en web.config y .csproj. Ahora estoy en otro error, así que debe estar funcionando ...
Para resolver esto, me aseguré de que todos mis proyectos usaran la misma versión ejecutando el siguiente comando y verificando los resultados:
update-package Newtonsoft.Json -reinstall
Y, finalmente, eliminé lo siguiente de mi web.config:
<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>
Si desea asegurarse de que todos sus paquetes de Newtonsoft.Json sean de la misma versión, puede especificar la versión de la siguiente manera:
update-package Newtonsoft.Json -version 6.0.0 -reinstall
Pasos faciles. (1) Ejecute "update-package Newtonsoft.Json -reinstall" en el administrador de paquetes.
(2) Borre su bin habilitando la visualización de los archivos ocultos y eliminando la carpeta bin.
(3) Cierre su estudio visual y vuelva a abrirlo.
(4) Ahora ejecute su proyecto nuevamente. Yo creo que debería estar bien
Puede resolver el problema agregando líneas a continuación en el archivo web.config.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
Si está trabajando con algún tipo de subversión: elimine el proyecto y vuelva a descargarlo, funcionó para mí: S
Si ninguno de estos funciona, verifique esta respuesta:
https://.com/a/12011221/150370
( TL; DR : elimine el espacio de nombres xml de la etiqueta de configuration
en su archivo de configuración. De lo contrario, se ignorarán los redireccionamientos de enlace)
Tenía exactamente el mismo problema y la biblioteca predeterminada de Visual Studio 13 para mí era 4.5, así que tengo 2 soluciones, una es sacar la referencia a esto en el archivo webconfig. Ese es un último recurso y funciona.
El mensaje de error indica que hay un problema en esta ubicación /Projects/foo/bar/bin/Newtonsoft.Json.DLL. donde esta la DLL! Un control de propiedad básico me indicó que era 4.5.0.0 o similar, así que cambié el archivo webconfig para buscar 4.5 y usar 4.5.
Tuve el mismo mensaje de error y, como mencionaste, fue debido a las diferentes versiones de Newtonsoft.Json.dll a los que se hace referencia.
Algunos proyectos en mi solución MVC usaron el paquete NuGet para la versión 4 de ese dll.
Luego agregué un paquete NuGet (para Salesforce en mi caso) que traía la versión 6 de Newtonsoft.Json como una dependencia de uno de los proyectos. Eso fue lo que desencadenó el problema para mí.
Para limpiar todo, utilicé la sección Actualizaciones en NuGet Package Manager para la solución (fuera del menú Herramientas o solución clic derecho) para actualizar el paquete Json.Net en toda la solución, por lo que era la misma versión para todos los proyectos.
Después de eso, solo verifiqué los archivos de configuración de la aplicación para asegurarme de que cualquier línea de redireccionamiento de enlace fuera a mi versión elegida como se muestra a continuación.
<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
Tuve el mismo problema en un proyecto de prueba que tenía referencia a un proyecto de MVC 5. Esto sucedió después de fusionarme con un proyecto de MVC 5. Lo arreglé instalando las actualizaciones de Visual Studio 2012 como se explica here en la respuesta de Andre.
- En tu estudio visual ve a
- Herramientas> Extensiones y actualizaciones
- Seleccione "Actualizaciones" en la lista de acordeones a la izquierda.
- Seleccione "Actualizaciones del producto".
- Actualiza a la última versión
Tuve el mismo problema. Creé un proyecto de API web y luego lo actualicé de .NET 4.5.1 a .NET 4.6.1. Cerrando el IDE, deteniendo IIS, y eliminando el contenido de C: / Windows / Microsoft.NET / Framework / v4.0.30319 / Temporary ASP.NET Files / dir corrigió el problema.
HTH