Cosas que he probado después de buscar:
en Web.Config puso 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>
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>
Busque en mi computadora todos los Newtonsoft.Json.dll y elimine todas las versiones que no sean 6.0.1 y elimine el contenido de mi carpeta temporal
Repare / reinstale el paquete en la consola de Nuget Manager
Tiene éxito en la construcción, pero obtiene el error al ir al sitio.
EDITAR
ok, entonces intenté reinstalar como todos los paquetes nuget, y parece que he agregado la versión 4.5 de newtonsoft.json.dll, pero obtengo el mismo error. El marco objetivo de mi proyecto es .NET 4.5.1 y aquí está el seguimiento de la pila que estoy obteniendo 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 de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (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 el ensamblajeNewtonsoft.Json
o una de sus dependencias. La definición de manifiesto del ensamblado ubicado no coincide con la referencia del ensamblado. (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 la pila de excepciones a continuación.
Rastreo de carga de ensamblaje: la siguiente información puede ser útil para determinar por qué
Newtonsoft.Json
no se pudo cargar el ensamblaje .
=== Pre-bind state information ===
LOG: DisplayName = Newtonsoft.Json
(Partial)
WRN: Partial binding information was supplied for an assembly:
WRN: Assembly Name: Newtonsoft.Json | Domain ID: 2
WRN: A partial bind occurs when only part of the assembly display name is provided.
WRN: This might result in the binder loading an incorrect assembly.
WRN: It is recommended to provide a fully specified textual identity for the assembly,
WRN: that consists of the simple name, version, culture, and public key token.
WRN: See whitepaper http://go.microsoft.com/fwlink/?LinkId=109270 for more information and common solutions to this issue.
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
Calling assembly : (Unknown).
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\users\user\documents\visual studio 2013\Projects\foo\bar\web.config
LOG: Using host configuration file: C:\Users\user\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.
LOG: Using application configuration file: c:\users\user\documents\visual studio 2013\Projects\foo\bar\web.config
LOG: Using host configuration file: C:\Users\user\Documents\IISExpress\config\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 4.5.0.0 redirected to 6.0.1.0.
LOG: Post-policy reference: Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///C:/Users/user/AppData/Local/Temp/1/Temporary ASP.NET Files/root/48686d37/9d7a6572/Newtonsoft.Json/Newtonsoft.Json.DLL.
LOG: Attempting download of new URL file:///c:/users/user/documents/visual studio 2013/Projects/foo/bar/bin/Newtonsoft.Json.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
Seguimiento de pila:
[FileLoadException: Could not load file or assembly 'Newtonsoft.Json' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
[FileLoadException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0
System.Reflection.RuntimeAssembly.nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34
System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqAssembly, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +152
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77
System.Reflection.RuntimeAssembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +16
System.Reflection.Assembly.Load(String assemblyString) +28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +38
[ConfigurationErrorsException: Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from 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): Could not load file or assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +9913572
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +101
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.18408
fuente
Respuestas:
Para resolver esto, me aseguré de que todos mis proyectos usaran la misma versión ejecutando el siguiente comando y verificando los resultados:
Y, por último, eliminé lo siguiente de mi web.config:
Si desea asegurarse de que todos sus paquetes Newtonsoft.Json tengan la misma versión, puede especificar la versión de esta manera:
fuente
Estoy usando Newtonsoft.Json v6.0.3, pero esto es lo que tuve que hacer en mi archivo Web.config:
Tenga en cuenta que aunque estoy usando 6.0.3, tuve que poner
newVersion="6.0.0.0"
En mi archivo packages.config tengo:
fuente
Intenté lo siguiente después de asegurarme de que mi computadora tenía la misma versión en todas las ubicaciones y que todos mis proyectos apuntaban a la misma ruta de referencia. También me aseguré de que la encuadernación de la versión anterior fuera suya y dependiera de la versión actual de dll que tenía.
Trabajo en un entorno con un marco estricto y el equipo del marco suele alterar el control de versiones con los diferentes archivos DLL.
La forma en que solucioné este problema fue ejecutar la consola del administrador de paquetes en Visual Studio (2013). Desde allí ejecuté el siguiente comando:
seguido por
Esto pasó y actualizó todos mis archivos de configuración y archivos de proyecto relevantes. Obligándolos a todos a la misma versión del dll. Que inicialmente era la versión 4.5 antes de actualizar nuevamente para obtener la última versión.
fuente
Recibí el mismo mensaje de error y, como mencionó, se debió a que se hace referencia a diferentes versiones de Newtonsoft.Json.dll.
Algunos proyectos en mi solución MVC utilizaron el paquete NuGet para la versión 4 de ese dll.
Luego agregué un paquete NuGet (para Salesforce en mi caso) que trajo Newtonsoft.Json versión 6 con él como una dependencia de uno de los proyectos. Eso fue lo que provocó el problema para mí.
Para limpiar las cosas, utilicé la sección Actualizaciones en el Administrador de paquetes NuGet para la solución (fuera del menú Herramientas o clic derecho de la solución) 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, simplemente verifiqué los archivos de configuración de la aplicación para asegurarme de que las líneas de redireccionamiento vinculantes fueran a mi versión elegida como se muestra a continuación.
fuente
Ok, creo que lo tengo para trabajar 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, por lo que debe estar funcionando ...
fuente
Al comentarlo, esta parte en mi web.config resolvió mi problema:
Pero, por supuesto, debe asegurarse de haber actualizado o tener la versión correcta haciendo esto en la consola del administrador de paquetes:
fuente
He probado los pasos de Oleg, y funcionaron para mi misma situación.
Pasos:
Ejecutar
update-package Newtonsoft.Json -reinstall
en el Administrador de paquetes.Elimine su
bin
activando la visualización de los archivos ocultos y eliminando labin
carpeta.Cierre su Visual Studio y vuelva a abrirlo.
Ahora ejecuta tu proyecto nuevamente. ¡Creo que debería estar bien!
fuente
Puede resolver el problema agregando las siguientes líneas en el archivo web.config.
fuente
En mi caso fue solo una cuestión de:
El problema fue causado cuando reasigné una carpeta TFS.
fuente
Lo que realmente me ayudó fue desactivar la compilación Resharper y usar la opción VisualStudio Re-Build en mi proyecto.
fuente
desde Herramientas >> NuGet Package Manager >> Gestionar paquete para actualizar la solución Newtonsoft.Json de todas las soluciones a la última versión
fuente
si está trabajando con algún tipo de subversión: elimine el proyecto y vuelva a descargarlo, funcionó para mí: S
fuente
Tuve el mismo problema en un proyecto de prueba que hacía referencia a un proyecto MVC 5. Esto sucedió después de fusionarme con un proyecto MVC 5. Lo arreglé instalando las actualizaciones de Visual Studio 2012 como se explica aquí en la respuesta de Andre.
fuente
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 se resuelve por ahora.
fuente
En algunos casos, si elimina sus carpetas
Bin
yObj
, resolverá este problema.fuente
Muy bien, así que supongo que lo que debo hacer es agregar mi respuesta aquí a esta larga lista en lugar de crear una pregunta duplicada ...
Si está obteniendo esto en 2019, utilizando .NET Core 3.0 (Vista previa en este momento), la solución es asegurarse de que todos los proyectos estén dirigidos a la misma versión de .NET Core (en mi caso 3.0). Creo que tenía un proyecto en la solución dirigido a 2.1 y el resto eran 2.2, por lo que probablemente podría haberme quedado con 2.2 ...
Ni siquiera tengo Newtonsoft.Json instalado en ninguno de los proyectos, y naturalmente agregarlo a ellos no solucionó el problema.
Si tiene bibliotecas de clases .NET Standard o w / e en su solución, no es necesario que estén en la misma versión, aunque probablemente deberían ser lo último que pueda utilizar. Por ejemplo, mis bibliotecas de clases de .NET Standard están en 2.2 ya que todavía no hay un .NET Standard 3.0.
fuente
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 BUS. Luego eliminé los dll del proyecto (para asegurarme de que desapareció), luego reinstalé JSON.NET de los paquetes nuget. Y, la parte difícil fue "apagarlo y volverlo a encender".
Acabo de reiniciar Visual Studio, ¡y allí funcionó!
Entonces, si intenta todo lo posible y aún no puede resolver el problema, solo intente apagar y volver a encender Visual Studio, podría ayudar.
fuente
Si ninguno de estos funciona, compruebe esta respuesta:
https://stackoverflow.com/a/12011221/150370
( TL; DR : elimine el espacio de nombres xml de la
configuration
etiqueta en su archivo de configuración. De lo contrario, se ignorarán los redireccionamientos vinculantes)fuente
Lo resolví eliminando 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
fuente
Tuve el mismo problema con el núcleo dotnet y logré solucionarlo borrando el caché NuGet.
Abra el PowerShell e ingrese el siguiente comando.
Luego cerré Visual Studio, lo abrí nuevamente e ingresé el siguiente comando en la consola del Administrador de paquetes:
NuGet ahora debería restaurar todos los paquetes y vuelve a llenar el caché nuget.
Después de eso pude construir e iniciar mi webapi core de dotnet en un contenedor de Linux.
fuente
La solución que resolvió mi problema para esto es
Ir a referencias-> clic derecho Newtonsoft.json - Ir a propiedades y verificar la versión
esta misma versión debería estar en
fuente
Después de horas luchando con esto ... hice lo siguiente:
web.config
La clave para ingresar el número correcto de newVersion y oldVersion es abrir el proyecto,
References
buscar el paquete, ir a sus propiedades o hacer clicalt + enter
Encontrarás una sección
Version
que, en mi caso, era12.0.0.0
mientras12.0.3
exploraba con Manage NuGet.Finalmente,
clean
yrebuild
el proyecto (es posible que desee eliminar elbin
yobj
carpetas antes).Puede enfrentar otros problemas de dependencias de paquetes, lo hice para todos y funcionaron.
fuente
Pasos faciles. (1) Ejecute "update-package Newtonsoft.Json -reinstall" en el administrador de paquetes.
(2) Elimine su bin al permitir ver los archivos ocultos y eliminar la carpeta bin.
(3) Cierre su estudio visual y vuelva a abrirlo.
(4) Ahora ejecute su proyecto nuevamente. Creo que debería estar bien
fuente
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 con el 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 llamando por qué funciona)
fuente
Luché con esto recientemente con un proyecto anterior.
Me las arreglé para rastrear el problema después de verificar qué versión de la dll que realmente estaba en la carpeta bin.
Tenía un script posterior a la compilación que copiaba ensamblajes dependientes de una carpeta de biblioteca dll a la carpeta bin. Una configuración común de los días anteriores a Nuget.
Entonces, cada vez que construí el script posterior a la compilación, reemplacé la versión correcta de Json.net por la anterior.
fuente
Tuve exactamente el mismo problema y la biblioteca predeterminada de Visual Studio 13 para mí era 4.5, por lo 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 está la DLL! Una verificación de propiedad básica me dijo que era 4.5.0.0 o similar, así que cambié la configuración web para buscar 4.5 y usar 4.5.
fuente
Ninguna de estas opciones funcionó para mí, al final lo fue;
Prueba> Configuración de prueba> * .testrunconfig
Tuve que agregar una nueva línea
Asegúrese de que la ruta y la versión sean correctas para su configuración.
fuente
Tuve el mismo problema. Creé un proyecto de API web y luego lo actualicé de .net 4.5.1 a .net 4.6.1. Al cerrar el IDE, detener IIS y eliminar el contenido de C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Archivos temporales de ASP.NET \ dir, se solucionó el problema.
HTH
fuente
Este problema no se resolvió para mí al actualizar los paquetes NuGet o al realizar una "limpieza" en el proyecto. Se resolvió limpiando la carpeta "obj" manualmente.
fuente
Aquí está 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. Ver aquí
fuente