Je reçois l'erreur
System.IO.FileLoadException: impossible de charger le fichier ou l'assembly 'Newtonsoft.Json, Version = 4.5.0.0, Culture = neutral, PublicKeyToken = 30ad4fe6b2a6aeed' ou l'une de ses dépendances. La définition du manifeste de l'assembly localisé ne correspond pas à la référence de l'assembly. (Exception de HRESULT: 0x80131040)
pour ma construction CI
Solution que j'ai essayée
<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>
Cela n'a pas fonctionné non plus
Réponses:
Dans l' exécution de la console gestionnaire de paquets:
Update-Package –reinstall Newtonsoft.Json
.METTRE À JOUR
J'ai initialement posté cela comme un commentaire, mais comme @OwenBlacker l'a suggéré, je vais le mettre ici:
Si vous obtenez toujours une erreur après avoir fait cela, alors ce qui a fonctionné pour moi, c'est que j'ai supprimé la
<dependentAssembly>
section Json.Net de mon.config
fichier. Réinstaller le ramène s'il n'est pas là et, apparemment, vous devez le supprimer. Jusqu'à ce qu'il y ait une solution normale dans le package lui-même, je crains que cette étape manuelle soit un must.Remarque: veuillez lire les commentaires ci-dessous avant de procéder.
Selon le commentaire de René ci-dessous, sachez que la commande publiée dans la réponse réinstalle le package dans chaque projet de votre solution. Donc, si vous utilisez le package Newtonsoft.Json dans plusieurs projets et utilisez peut-être différentes versions, l'exécution de la commande ci-dessus peut avoir des conséquences indésirables.
la source
<dependentAssembly>
section Json.Net de mon.config
fichier. Réinstaller le ramène s'il n'est pas là et, apparemment, vous devez le supprimer. Jusqu'à ce qu'il y ait une solution normale dans le package lui-même, je crains que cette étape manuelle soit un must.Pour tous ceux qui ont des problèmes avec la version Newtonsoft.Json v4.5, essayez d'utiliser ceci dans web.config ou app.config:
IMPORTANT : vérifiez que la
configuration
balise de votre fichier de configuration n'a pas d'attribut d'espace de noms (comme suggéré dans https://stackoverflow.com/a/12011221/150370 ). Sinon, lesassemblyBinding
balises seront ignorées.la source
newVersion="6.0.0.0"
doit donc être changée ennewVersion="7.0.0.0"
ou quelle que soit la version que vous utilisezLe point clé est de référencer la bonne version dans votre fichier de configuration.
Pas;
1- regardez quelle est la version de votre Newtonsoft.Json.dll dans la propriété de référence du projet quelle que soit la version dans votre dossier de package (par exemple la mienne est 7.0.1 et la version de référence est 7.0.0.0)
2- regardez ce que le projet attend de vous dans l'exception (le mien est 6.0.0.0)
3- Ajoutez l'assembly dépendant à votre fichier de configuration comme il se doit.
la source
Je n'ai eu aucune chance avec aucune des solutions présentées ici (désinstallation, réinstallation, suppression de références, création de bindingRedirects, etc.) J'ai dû revenir à une ancienne version de Newtonsoft. La version 5.0.6 fonctionnait auparavant, j'ai donc essayé celle-là. J'ai dû entrer ces deux commandes dans la console du package:
uninstall-package newtonsoft.json -force
install-package newtonsoft.json -version "5.0.6"
L'
-force
option de la première commande est requise pour forcer la désinstallation. Les dépendances avec d'autres assemblys empêchent la désinstallation sans lui.la source
J'ai résolu le problème en ajoutant cette redirection de liaison à mon fichier .config:
Le message d'erreur se plaint de ne pas trouver la version 4.5.0.0, la version actuelle de Newtonsoft.Json est 6.0.0.0, donc la redirection devrait passer de 4.5 à 6.0, pas vice versa
la source
Je pense que vous pointez vers la mauvaise cible, changez-la en 4.5 au lieu de 6.0
Cela devrait fonctionner.
la source
J'ai passé quelques jours à essayer de résoudre ce problème frustrant. J'ai essayé à peu près tout ce qui peut être trouvé sur le Web. Enfin, j'ai trouvé que cette erreur pouvait être causée (comme dans mon cas) par les différentes versions du projet .Net cible (4.5 et 4.5.1) dans une seule solution. Les étapes ci-dessous l'ont réparé pour moi:
Properties
.Si possible, définissez la même version .Net pour tous les projets. Sinon, essayez au moins de changer celui du projet de démarrage (pour moi, c'est celui qui a causé les problèmes).
Retirez tous les
Newtonsoft.Json
packs de la solution.uninstall-package newtonsoft.json -force
Mettre à jour toutes les
Newtonsoft.Json
versions dans tous lespackages.config
fichiers, comme ça<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net451" />
Réinstallez à
Newtonsoft.Json
partir de "Package Manager Console" avec:install-package newtonsoft.json
Reconstruisez la solution
(Facultatif) 7. Si vous avez modifié le projet de démarrage, renvoyez-le à nouveau
la source
A fait l'affaire pour moi :)
la source
si vous utilisez plusieurs projets dans la même solution et la même bibliothèque, tous les projets ont la même version de Newtonsoft.Json
la source
Supprimez l'assembly Newtonsoft.Json de la référence de projet et ajoutez-le à nouveau. Vous avez probablement supprimé ou remplacé la DLL par accident.
la source
J'écrivais un client de service WebApi REST, donc pour moi, cette erreur a été provoquée par l'ajout manuel de références aux assemblys
System.Net.Http
etSystem.Net.Http.Formatting
via Ajouter une référence, alors que j'aurais dû ajouter leMicrosoft.AspNet.WebApi.Client
package via NuGet . Voir aussi cette réponse à une autre question .la source
Vous disposez de 2 versions différentes de la bibliothèque JSON.NET dans votre solution. Pour résoudre ce problème, vous devez les mettre à niveau vers la dernière version. Suivez ces étapes:
1-Ouvrir l'explorateur de solutions 2-Cliquer avec le bouton droit sur le nom de la solution 3-Sélectionner Gérer les packages Nuget pour la solution 4-Sélectionner les mises à jour dans le menu 5-Mettre à jour le package JSON.NET
Cela résoudra votre problème.
lien: impossible de charger le fichier ou l'assembly «Newtonsoft.Json, version = 7.0.0.0, Culture = neutre, PublicKeyToken = 30ad4fe6b2a6aeed» ou l'une de ses dépendances
la source
Déployer la version correcte sur la machine CI
Cela vous indique que le chargeur d'assembly a trouvé une version différente de l'
Newtonsoft.Json
assembly, qui ne correspond pas à la référence que vous avez créée dans votre projet. Pour charger correctement l'assembly, vous devez soit déployer l'assembly côte à côte avec votre code compilé, soit installer la version correcte de l'assembly dans la machine de destination (c'est-à-dire dans le GAC).Alternative: assurez-vous que la configuration est dans le bon fichier
Si vous souhaitez conserver la solution actuelle et charger un assembly avec une version différente, assurez-vous que la configuration que vous avez publiée se trouve dans le
.config
fichier correct . N'oubliez pas qu'il n'y en a pasxpto.dll.config
, une DLL chargée par une application utilise toujours le fichier de configuration de l'application en cours d'exécution.la source
Normalement, l'ajout de la redirection de liaison devrait résoudre ce problème, mais cela ne fonctionnait pas pour moi. Après quelques heures à me cogner la tête contre le mur, j'ai réalisé qu'il y avait un attribut xmlns causant des problèmes dans mon web.config. Après avoir supprimé l'attribut xmlns du nœud de configuration dans Web.config, les redirections de liaison ont fonctionné comme prévu.
http://www.davepaquette.com/archive/2014/10/02/could-not-load-file-or-assembly-newtonsoft-json-version4-5-0-0.aspx
la source
Fonctionne pour moi .... mettez simplement la version que vous utilisez dans newVersion ie (newVersion = "7.0.0.0")
la source
Fermer la solution.
Ouvrez
packages.config
et*.csproj
avec l'éditeur de texte et supprimez n'importe quelle ligne avec 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>
Ou
<package id="Newtonsoft.Json" version="9.0.1" targetFramework="net40" />
Ouvrez à nouveau la solution et réinstallez Newtonsoft.Json par
Install-Package Newtonsoft.Json
Ça marche pour moi.
la source
Nous avions exactement le même problème que vous avez mentionné. Nous utilisons nunit pour exécuter des tests via CI, et nous avons nunit qui exécute un fichier appelé tests.nunit, qui décrit une liste de montages de DLL de test à exécuter.
Chaque appareil de test avait son propre fichier de configuration, mais lorsqu'il est exécuté dans le fichier "tests.nunit", les redirections de liaison semblent être ignorées. La solution consistait à ajouter les redirections de liaison à un nouveau fichier de configuration, "tests.config" qui se trouvait à côté du fichier "tests.nunit".
la source
J'ai le même type de problème. Et je l'ai également résolu en procédant simplement comme suit: Accédez à TOOLS > NuGet Package Manager et sélectionnez Package Manager Console . Enfin, exécutez les deux commandes suivantes :)
la source
Vous devez mettre à jour le fichier web.config sur le serveur. Lorsque nuget installe NewtonSoft, mettez à jour ce fichier, y compris ce code
la source
Vérifiez simplement la version des propriétés de Newtonsoft.Json Newtonsoft
Ensuite, vous devez ajouter cette version dans votre configuration Web (dans mon cas 8.0.0.0) Configuration Web
la source
J'ai fait l'erreur d'ajouter un fichier NewtonSoft .dll pour .Net 4.5.
Mon projet principal était 4.5, mais quand j'ai ajouté un projet supplémentaire à ma solution, il l'a étrangement ajouté en tant que projet .Net 2.0 ... et quand j'ai essayé d'utiliser la DLL 4.5 de NewtonSoft avec cela, j'ai obtenu ce "Newtonsoft.Json ne pouvait pas 'ne pas être trouvé "erreur.
La solution (bien sûr) était de faire passer ce nouveau projet de .Net 2.0 à 4.5.
la source
Dans mon cas, le projet principal faisait toujours référence à une ancienne version de Newtonsoft.Json qui n'existait plus dans le projet (indiquée par un point d'exclamation jaune). La suppression de la référence a résolu le problème, aucun bindingRedirect n'était nécessaire.
la source
J'ai eu exactement le même problème avec la version 7.0.0.0, et la bibliothèque à l'origine de mon problème était Microsoft.Rest.ClientRuntime qui faisait en quelque sorte référence à la mauvaise version (6.0.0.0) de Newtonsoft.json, malgré la bonne gestion des dépendances dans le nugget ( la bonne version de newtonsoft.json (7.0.0.0) a été installée).
J'ai résolu cela en appliquant la redirection ci-dessus de 6.0.0.0 à 7.0.0.0 (de Kadir Can) dans le fichier de configuration:
----> Après quelques jours sans rien changer, il est revenu avec la même erreur. J'ai installé la version 6.0.0.0 et je l'ai mise à jour vers 7.0.0.0, cela fonctionne bien maintenant.
la source
Dans mon cas, après avoir téléchargé l'assembly et ajouté la référence au projet, j'ai résolu cela en «débloquant» la DLL avant d'ajouter la référence au projet.
À l'aide de l'explorateur Windows, accédez à l'emplacement de la DLL, cliquez avec le bouton droit sur la DLL, puis sélectionnez «propriétés». Vous trouverez un bouton «débloquer» sur l'un des onglets, puis vous pourrez ajouter la référence et l'assemblage se chargera correctement.
la source
Rien d'en haut ne m'a aidé, mais ce qui a vraiment résolu le problème est le suivant:
Get-Project -All | Add-BindingRedirect
Référence: http://blog.myget.org/post/2014/11/27/Could-not-load-file-or-assembly-NuGet-Assembly-Redirects.aspx
la source
Cliquez avec le bouton droit sur votre projet, sélectionnez gérer les packages Nuget, tapez newtonsoft dans la zone de recherche et installez la dernière version. Exécutez ensuite votre application
la source
J'étais confronté à la même erreur et j'ai lutté avec elle pendant des heures. J'avais un projet d'API Web qui utilise Newtonsoft.json et un autre projet UnitTest pour le projet d'API Web. Le projet de test unitaire avait également besoin de la référence Newtonsoft.json. Mais en ajoutant le lien, je recevais l'exception ci-dessus.
Je l'ai finalement résolu en ajoutant l'extrait de code ci-dessous dans le fichier app.config du projet de test unitaire:
la source
Un autre problème insidieux est qu'il semble que les redirections de liaison peuvent échouer silencieusement si l'élément a une configuration incorrecte sur tout autre élément d'assemblage dépendant.
Assurez-vous que vous n'avez qu'un seul élément sous chaque élément.
Dans certains cas, VS génère ceci:
Au lieu de
Cela m'a pris beaucoup de temps pour réaliser que c'était le problème!
la source
La section ci-dessous s'ajoute à votre web.config
la source
Si l'erreur disparaît localement et apparaît toujours sur le serveur, la solution qui fonctionne avec moi consiste à supprimer le dossier bin et packages.config et web.config et à télécharger à nouveau ces fichiers
la source