Recibo el error
System.IO.FileLoadException: no se pudo cargar el archivo o ensamblado 'Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' 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)
para mi construcción CI
Solución que probé
<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>
Tampoco funcionó
Respuestas:
En la consola de administrador de paquetes ejecutar:
Update-Package –reinstall Newtonsoft.Json
.ACTUALIZAR
Originalmente publiqué esto como un comentario, pero como @OwenBlacker sugirió que lo pondré aquí:
Si aún recibe un error después de hacer esto, lo que finalmente funcionó para mí es que eliminé la
<dependentAssembly>
sección de Json.Net de mi.config
archivo. Reinstalar lo trae de vuelta si no está allí y aparentemente necesita eliminarlo. Hasta que haya una solución normal en el paquete en sí, me temo que este paso manual es imprescindible.Nota: Lea los comentarios a continuación antes de hacer esto.
Según el comentario de René a continuación, TENGA EN CUENTA que el comando publicado en la respuesta reinstalará el paquete en cada proyecto de su solución. Entonces, si usa el paquete Newtonsoft.Json en varios proyectos y tal vez usa diferentes versiones, solo ejecutar el comando anterior podría tener consecuencias no deseadas.
fuente
<dependentAssembly>
sección de Json.Net de mi.config
archivo. Reinstalar lo trae de vuelta si no está allí y aparentemente necesita eliminarlo. Hasta que haya una solución normal en el paquete en sí, me temo que este paso manual es imprescindible.Para todos los que tengan problemas con la versión Newtonsoft.Json v4.5, intente usar esto en web.config o app.config:
IMPORTANTE : Verifique que la
configuration
etiqueta de su archivo de configuración no tenga atributos de espacio de nombres (como se sugiere en https://stackoverflow.com/a/12011221/150370 ). De lo contrario, lasassemblyBinding
etiquetas serán ignoradas.fuente
newVersion="6.0.0.0"
debe cambiarse a lanewVersion="7.0.0.0"
versión que esté utilizando o sea la que esté utilizandoEl punto clave es hacer referencia a la versión correcta en su archivo de configuración.
Pasos;
1- mire cuál es la versión de su Newtonsoft.Json.dll en la propiedad de referencia del proyecto, independientemente de la versión en la carpeta de su paquete (por ejemplo, la mía es 7.0.1 y la versión de referencia es 7.0.0.0)
2- mira lo que el proyecto espera de ti en la excepción (la mía es 6.0.0.0)
3- Agregue ensamblaje dependiente a su archivo de configuración como debería ser.
fuente
No tuve suerte con ninguna de las soluciones presentadas aquí (desinstalar, reinstalar, eliminar referencias, crear enlaces vinculantes, etc.) Tuve que volver a una versión anterior de Newtonsoft. La versión 5.0.6 había estado funcionando antes, así que probé esa. Tuve que ingresar estos dos comandos en la consola del paquete:
uninstall-package newtonsoft.json -force
install-package newtonsoft.json -version "5.0.6"
Se
-force
requiere la opción en el primer comando para forzar la desinstalación. Las dependencias con otros ensamblados impiden la desinstalación sin ella.fuente
Solucioné el problema al agregar esta redirección de enlace a mi archivo .config:
El mensaje de error se queja de no encontrar la versión 4.5.0.0, la versión actual de Newtonsoft.Json es 6.0.0.0, por lo que la redirección debe ir de 4.5 a 6.0, no viceversa.
fuente
Creo que está apuntando al objetivo equivocado, cámbielo a 4.5 en lugar de 6.0
Esto debería funcionar.
fuente
He pasado un par de días tratando de resolver este problema frustrante. He intentado casi todo lo que se puede encontrar en la web. Finalmente descubrí que este error podría ser causado (como en mi caso) por las diferentes versiones de proyecto .Net de destino (4.5 y 4.5.1) en una solución. Los pasos a continuación lo arreglaron para mí:
Properties
.Si es posible, configure la misma versión .Net para todos los proyectos. Si no, al menos, intente cambiar el proyecto de inicio (para mí, este fue el que causó los problemas).
Retire todos los
Newtonsoft.Json
paquetes de la solución.uninstall-package newtonsoft.json -force
Actualice todas las
Newtonsoft.Json
versiones en todos lospackages.config
archivos, así<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net451" />
Reinstale
Newtonsoft.Json
desde "Package Manager Console" con:install-package newtonsoft.json
Reconstruir la solución.
(Opcional) 7. Si cambió el proyecto de inicio, devuélvalo nuevamente
fuente
Hizo el truco para mí :)
fuente
si utiliza varios proyectos en la misma solución y la biblioteca de la otra, compruebe si todos los proyectos tienen la misma versión de Newtonsoft.Json
fuente
Retire el ensamblaje Newtonsoft.Json de la referencia del proyecto y agréguelo nuevamente. Probablemente eliminó o reemplazó el archivo DLL por accidente.
fuente
Estaba escribiendo un cliente de servicio REST de WebApi, por lo que para mí este error fue causado al agregar referencias
System.Net.Http
ySystem.Net.Http.Formatting
ensamblajes manualmente a través de Agregar referencia, cuando debería haber agregado elMicrosoft.AspNet.WebApi.Client
paquete a través de NuGet . Vea también esta respuesta a otra pregunta .fuente
Tiene 2 versiones diferentes de la biblioteca JSON.NET en su solución. Para resolver esto, debe actualizarlos a la última versión. Sigue estos pasos:
1-Abra el explorador de soluciones 2-Haga clic derecho en el nombre de la solución 3-Seleccione Administrar paquetes Nuget para la solución 4-Seleccione Actualizaciones del menú 5-Actualice el paquete JSON.NET
Esto resolverá tu problema.
enlace: No se pudo cargar el archivo o ensamblado 'Newtonsoft.Json, Versión = 7.0.0.0, Cultura = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' o una de sus dependencias
fuente
Implemente la versión correcta en la máquina CI
Esto le indica que el cargador de ensamblaje encontró una versión diferente del
Newtonsoft.Json
ensamblado, que no coincide con la referencia que creó en su proyecto. Para cargar el ensamblaje correctamente, debe implementar el ensamblado junto con su código compilado o instalar la versión correcta del ensamblaje en la máquina de destino (es decir, en el GAC).Alternativa: asegúrese de que la configuración esté en el archivo correcto
Si desea conservar la solución actual y cargar un ensamblaje con una versión diferente, asegúrese de que la configuración que publicó esté en el
.config
archivo correcto . Recuerde que no existexpto.dll.config
, una DLL cargada por una aplicación siempre usa el archivo de configuración de la aplicación en ejecución.fuente
Normalmente, agregar la redirección de enlace debería resolver este problema, pero no me funcionó. Después de unas horas de golpearme la cabeza contra la pared, me di cuenta de que había un atributo xmlns que causaba problemas en mi web.config. Después de eliminar el atributo xmlns del nodo de configuración en Web.config, las redirecciones de enlace funcionaron como se esperaba.
http://www.davepaquette.com/archive/2014/10/02/could-not-load-file-or-assembly-newtonsoft-json-version4-5-0-0.aspx
fuente
Funciona para mí ... simplemente ponga la versión que está utilizando en newVersion, es decir (newVersion = "7.0.0.0")
fuente
Solución cerrada
Abra
packages.config
y*.csproj
con editor de texto y elimine cualquier línea que tenga Newtonsoft.JsonEx:
<Reference Include="Newtonsoft.Json,Version=9.0.0.0,Culture=neutral,PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL"> <HintPath>..\packages\Newtonsoft.Json.9.0.1\lib\net40\Newtonsoft.Json.dll</HintPath> <Private>True</Private> </Reference>
O
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net40" />
Abra la solución nuevamente y vuelva a instalar Newtonsoft.Json por
Install-Package Newtonsoft.Json
Funciona para mi.
fuente
Tuvimos exactamente el mismo problema que mencionaste. Estamos usando nunit para ejecutar pruebas a través de CI, y tenemos a nunit ejecutando un archivo llamado tests.nunit, que describe una lista de accesorios dll de prueba para ejecutar.
Cada dispositivo de prueba tenía su propio archivo de configuración, pero cuando se ejecuta a través del archivo "tests.nunit", las redirecciones de enlace parecen ignorarse. La solución fue agregar los redireccionamientos de enlace a un nuevo archivo de configuración, "tests.config" que estaba al lado del archivo "tests.nunit".
fuente
Tengo el mismo tipo de problema. Y también lo resolví simplemente haciendo lo siguiente: Vaya a HERRAMIENTAS > NuGet Package Manager y Seleccione Package Manager Console . Finalmente, ejecute los siguientes dos comandos :)
fuente
Debe actualizar el archivo web.config en el servidor. Cuando nuget instale NewtonSoft, actualice este archivo, incluido este código
fuente
Simplemente verifique la versión de Newtonsoft.Json Newtonsoft propiedades
Luego debe agregar esa versión en su configuración web (en mi caso 8.0.0.0) Configuración web
fuente
Cometí el error de agregar un archivo NewtonSoft .dll para .Net 4.5.
Mi proyecto principal fue 4.5, pero cuando agregué un proyecto adicional a mi solución, extrañamente lo agregó como un proyecto .Net 2.0 ... y cuando intenté usar el dll 4.5 de NewtonSoft con esto, obtuve este "Newtonsoft.Json no pudo error "t be found".
La solución (por supuesto) fue cambiar este nuevo proyecto de .Net 2.0 a 4.5.
fuente
En mi caso, el proyecto principal todavía hacía referencia a una versión anterior de Newtonsoft.Json que ya no existía en el proyecto (que se muestra con un signo de exclamación amarillo). La eliminación de la referencia resolvió el problema, no fue necesario un enlace vinculante.
fuente
Tuve exactamente el mismo problema con la versión 7.0.0.0, y la lib que causó mi problema fue Microsoft.Rest.ClientRuntime que de alguna manera se refería a la versión incorrecta (6.0.0.0) de Newtonsoft.json, a pesar de la correcta administración de dependencias en nugget ( se instaló la versión correcta de newtonsoft.json (7.0.0.0)).
Resolví esto aplicando la redirección anterior de 6.0.0.0 a 7.0.0.0 (de Kadir Can) en el archivo de configuración:
----> Después de unos días sin cambiar nada, apareció nuevamente con el mismo error. Instalé la versión 6.0.0.0 y la actualicé a 7.0.0.0, funciona bien ahora.
fuente
En mi caso, después de descargar el ensamblado y agregar la referencia al proyecto, resolví esto 'desbloqueando' la DLL antes de agregar la referencia al proyecto.
Con el explorador de Windows, busque la ubicación de la DLL, haga clic con el botón derecho en la DLL y luego seleccione 'propiedades'. Encontrará un botón 'desbloquear' en una de las pestañas y luego podrá agregar la referencia y el ensamblaje se cargará correctamente.
fuente
Nada de lo anterior me ayudó, pero lo que realmente solucionó es lo siguiente:
Get-Project -Todos | Add-BindingRedirect
Referencia: http://blog.myget.org/post/2014/11/27/Could-not-load-file-or-assembly-NuGet-Assembly-Redirects.aspx
fuente
Haga clic derecho en su proyecto, seleccione administrar paquetes Nuget, escriba newtonsoft en el cuadro de búsqueda e instale la última versión. Luego ejecuta tu aplicación
fuente
Estaba enfrentando el mismo error y luché con él durante horas. Tenía un proyecto de API web que usa Newtonsoft.json y otro proyecto de UnitTest para el proyecto de API web. El proyecto de prueba de unidad también necesitaba la referencia Newtonsoft.json. Pero al agregar el enlace recibí la excepción anterior.
Finalmente lo resolví agregando el fragmento de código a continuación en la app.config del proyecto de prueba de unidad:
fuente
Otro problema insidioso es que parece que las redirecciones de enlace pueden fallar silenciosamente si el elemento tiene una configuración incorrecta en cualquier otro elemento de ensamblaje dependiente.
Asegúrese de tener solo un elemento debajo de cada elemento.
En algunos casos, VS genera esto:
En vez de
¡Me tomó mucho tiempo darme cuenta de que este era el problema!
fuente
Debajo de la sección agregue a su web.config
fuente
Si el error desaparece localmente y aún aparece en el servidor, la solución que funciona conmigo es eliminar la carpeta bin y los paquetes.config y web.config y volver a cargar estos archivos
fuente