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 del ensamblaje

216

Cosas que he probado después de buscar:

  1. 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>
  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 todos los Newtonsoft.Json.dll y elimine todas las versiones que no sean 6.0.1 y elimine el contenido de mi carpeta temporal

  4. 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.Jsono 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.FileLoadExceptionno se pudo cargar el archivo o el ensamblaje Newtonsoft.Jsono 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.Jsonno 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
noobieDev
fuente
2
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 trabajando ...
noobieDev
1
Agregue la respuesta a su pregunta para que las personas puedan ver que se ha resuelto. Y
márquelo
2
Tengo alguna versión de este problema incluso hoy (3/1/2016) con la versión 8.0.2. Está intentando cargar la versión 6.0.0. Ningún archivo en mi solución hace referencia a 6.0.0. No hay versión 6.0.0. .dll en cualquier parte de mi área de solución. Tengo muchas copias de newtonsoft.json.dll en mi computadora, de varias versiones, son utilizadas por software de terceros instalado con el que no quiero meterme. Además de eliminar todas esas copias, he probado todas las soluciones mencionadas en este hilo completo, y nada ha funcionado.
Shavais
1
También me encontré con este mensaje de error de newtonsoft-json cuando agregué la referencia de un proyecto a otro proyecto, pero .Net Framework en los proyectos fue diferente después de hacer el mismo .Net Framework en ambos problemas corregidos. Pero no pude entender en lugar del mensaje de error de Framework por qué muestra un error relacionado con newtonsoft-json.
Sameer
1
Instale la misma versión de Newtonsoft.Json en todos sus proyectos, aunque no lo usen.
rubStackOverflow

Respuestas:

274

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, por último, 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 Newtonsoft.Json tengan la misma versión, puede especificar la versión de esta manera:

update-package Newtonsoft.Json -version 6.0.0 -reinstall
usuario1477388
fuente
17
Simplemente ejecutar el comando de reinstalación funcionó para mí. No necesitaba modificar web.config.
Keith
44
Solo tuve que agregar la etiqueta <dependentAssembly> para deshacerme de este error.
Nicklas Møller Jepsen
3
Tuve que proporcionar la versión, pero omitir el indicador de reinstalación para que funcione en mi caso.
anre
1
Estoy usando la versión reciente 9.0.1 pero mostraba el mismo error. Luego verifiqué la versión en el archivo csproj y era 9.0.0.0, lo agregué a mi web.config y el problema se resolvió. 1. Asegúrese de que la versión en csproj sea la misma que en web.config 2. Tenga cuidado con los números de versión, puede decir x.0.1 cuando la versión real es x.0.0.0, x puede ser 6 o 9 o lo que sea .
Eugene
77
Tenga en cuenta que para ejecutar el comando en VS2017, puede ir a Herramientas -> Nuget Package Manager -> Package Manager Console
Rose
83

Estoy usando Newtonsoft.Json v6.0.3, pero esto es lo que tuve 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" />
CraigV
fuente
1
Solo como una nota, intenté desinstalar / eliminar / eliminar todo lo que pude encontrar que tenía que ver con Newtonsoft.Json, luego usé Nuget para reinstalarlo, pero aún recibía el error anterior. No fue hasta que hice los cambios que mencioné que pude hacer que funcionara correctamente.
CraigV
Experimenté este problema y utilicé el Visor de registro de enlace de ensamblaje para ayudar a diagnosticarlo. La carpeta de ensamblaje informa v6.0.3 Newtonsoft.Json.dll como v6.0.0.0, por lo que la redirección fallará cuando lo configuré como 6.0.3.
Jason Slocomb
La línea "Nota" me ayuda. Inicialmente tenía 9.0.1.19813 como newVersion en el vinculanteRedirect ya que eso es lo que dice la DLL. Esto es lo que tengo ahora: <Reference Include = "Newtonsoft.Json, Version = 9.0.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed, processorArchitecture = MSIL"> <SpecificVersion> False </SpecificVersion> </Reference> <dependentAssembly> <assemblyIdentity name = "Newtonsoft.Json" culture = "neutral" publicKeyToken = "30ad4fe6b2a6aeed" /> <bindingRedirect oldVersion = "0.0.0.0-9.0.0.0" newVersion = "9.0.0.0" /> </dependentAssembly>
Mark Seefeldt
62

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:

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. 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.

Samuel
fuente
Fue la actualización la que resolvió el problema para mí. Mi proyecto se actualizó a Newtonsoft versión 7.0.
id.ot
Trabajó para mi. Después de hacer esto, es importante tener en cuenta para asegurarse de que su archivo package.config y web.config tengan versiones coincidentes.
TheValyreanGroup
Trabajó para mí cuando lo hice desde la consola NuGet Package Manager, ¡gracias!
Kbdavis07
25

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.

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
S__
fuente
¿Qué sucede si las DLL tienen dependencias para diferentes versiones de Newtonsoft.Json para la misma aplicación MVC? Aquí es donde estoy atrapado.
Jeremy Ray Brown
Use la opción Consolidar en el administrador de paquetes NuGet para asegurarse de que las versiones no se separen.
niico
17

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 ...

noobieDev
fuente
2
¿Cómo hiciste para encontrar todas las ubicaciones en tu máquina?
obaylis
También recibí el error cuando llevo el proyecto del servidor de Team Foundation a mi PC. Agrego la referencia de newtonsoft a mi solución. No funcionó. Luego instalo json.net (newtonsoft.json) a través del administrador de paquetes Nuget. Ahora es funcionando bien.
Mohammad Sadiqur Rahman
está dentro del nombre del archivo de la carpeta bin - Newtonsoft.Json.dll Elimine este archivo y reinstale el paquete o simplemente instale la versión inferior y reinstale la versión correcta usando NuGet-Solution
maddy
7

Al comentarlo, 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 del administrador de paquetes:

update-package Newtonsoft.Json -reinstall
Willy David Jr
fuente
4

He probado los pasos de Oleg, y funcionaron para mi misma situación.

Pasos:

  1. Ejecutar update-package Newtonsoft.Json -reinstallen el Administrador de paquetes.

  2. Elimine su binactivando la visualización de los archivos ocultos y eliminando la bincarpeta.

  3. Cierre su Visual Studio y vuelva a abrirlo.

  4. Ahora ejecuta tu proyecto nuevamente. ¡Creo que debería estar bien!

Matthew Cavallo
fuente
4

Puede resolver el problema agregando las siguientes líneas 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>
Jineesh Uvantavida
fuente
3

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.

daniloquio
fuente
3

Lo que realmente me ayudó fue desactivar la compilación Resharper y usar la opción VisualStudio Re-Build en mi proyecto.

Shaulian
fuente
¿Cómo hiciste eso?
Naomi
1
En las opciones de Resharper: Herramientas -> ReSharper Build -> Build Engine - elija "Visual Studio"
Shaulian
Instalé una versión de prueba hace un tiempo (creo que hace aproximadamente un mes) y luego también deshabilité la extensión. No lo veo en Herramientas, así que espero estar bien.
Naomi
3

desde Herramientas >> NuGet Package Manager >> Gestionar paquete para actualizar la solución Newtonsoft.Json de todas las soluciones a la última versión

Goda Kotb
fuente
2

si está trabajando con algún tipo de subversión: elimine el proyecto y vuelva a descargarlo, funcionó para mí: S

ch2o
fuente
Mucho tiempo pero he tenido que hacer esto ya que ninguna otra solución me funcionó
Mike Resoli
2

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.

  • En tu estudio visual ve a
    1. Herramientas> Extensiones y actualizaciones
    2. Seleccione "Actualizaciones" en la lista de acordeones a la izquierda.
    3. Seleccione "Actualizaciones de productos".
    4. Actualiza a la versión más nueva
Michael Kassa
fuente
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia
abarisone
Mi problema se solucionó con esta solución, gracias! Tenía instalada la versión 8.0.1 y no funcionó hasta que actualicé a VS2013 actualización 5
Devin Prejean
2

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.

mesut
fuente
Tuve un problema similar En mi solución, tengo un proyecto de prueba. El proyecto de prueba estaba obteniendo la versión 9 en el contenedor, pero el proyecto que estaba probando tenía la versión 12. Copié la versión 12 del proyecto en la carpeta bin del examen a la carpeta bin del examen.
Josh Jay
2

En algunos casos, si elimina sus carpetas Biny Obj, resolverá este problema.

Ivan Ruski
fuente
2

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.

jspinella
fuente
1

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.

Zafer Sernikli
fuente
2
Creo que simple fue sarcasmo.
Digno7
1

Si ninguno de estos funciona, compruebe esta respuesta:

https://stackoverflow.com/a/12011221/150370

( TL; DR : elimine el espacio de nombres xml de la configurationetiqueta en su archivo de configuración. De lo contrario, se ignorarán los redireccionamientos vinculantes)

Latorre alemán
fuente
1

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

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
</dependentAssembly>
Alok Kumar
fuente
1

Tuve el mismo problema con el núcleo dotnet y logré solucionarlo borrando el caché NuGet.

Abra el PowerShell e ingrese el siguiente comando.

dotnet nuget locals all --clear

Luego cerré Visual Studio, lo abrí nuevamente e ingresé el siguiente comando en la consola del Administrador de paquetes:

Update-Package

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.

datoml
fuente
1

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

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-YourDllVersion" newVersion="YourDllVersion" />
</dependentAssembly>
Er Imran Shaikh
fuente
1

Después de horas luchando con esto ... hice lo siguiente:

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-12.0.0.0" newVersion="12.0.0.0" />
    </dependentAssembly>

    <!-- other assemblies... -->

  </assemblyBinding>
</runtime>

La clave para ingresar el número correcto de newVersion y oldVersion es abrir el proyecto, Referencesbuscar el paquete, ir a sus propiedades o hacer clicalt + enter

Encontrarás una sección Versionque, en mi caso, era 12.0.0.0mientras 12.0.3exploraba con Manage NuGet.

Por lo tanto, debe elegir la versión del paquete de las propiedades de referencia (en mi caso 12.0.0.0)

Finalmente, cleany rebuildel proyecto (es posible que desee eliminar el binyobj carpetas antes).

Puede enfrentar otros problemas de dependencias de paquetes, lo hice para todos y funcionaron.

Ali Kleit
fuente
0

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

Odeyinka Olubunmi
fuente
0

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)

Mike S
fuente
0

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.

Fredrik Stolpe
fuente
0

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.

Mcole1976
fuente
0

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 correctas para su configuración.

Daniel Haselden
fuente
0

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

CafeínaDrivenDevelopment
fuente
0

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.

Alexander P. Brown
fuente
0

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