web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'Newtonsoft.Json' ou l'une de ses dépendances

Tout d'abord, il ne s'agit pas simplement de dupliquer. Aucune des réponses aux questions suivantes ne fonctionne pour moi.

http://goo.gl/tS40cn
http://goo.gl/pH6v2T

Je viens de mettre à jour tous mes paquets en utilisant Nuget Package Manager et j'ai commencé à recevoir cette erreur.

Impossible de charger le fichier ou l'Assemblée 'Newtonsoft.Json, Version = 6.0.0.0, Culture = neutre, PublicKeyToken = 30ad4fe6b2a6aeed' ou l'une de ses dépendances. La définition du manifeste de l'Assemblée localisée ne correspond pas à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040)

Mon paquet Config a:

<package id="Newtonsoft.Json" version="7.0.1" targetFramework="net45" />

Web.config inclut ce morceau de code:

  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="4.5.0.0" />
  </dependentAssembly>

Propriétés de Référence pour Newtonsoft.Json

 enter image description here

Selon les réponses aux questions similaires, j’ai essayé de suivre:

  • Réinstallation du paquet en utilisant Update-Package –reinstall Newtonsoft.Json
  • Suppression de dependentAssembly config de Web.config pour Newtonsoft.Json
  • Remplacer newVersion par 6.0.0.0 et 7.0.0.0 dans dependentAssembly. Cela a donné naissance à une nouvelle erreur.
  • Aussi essayé Get-Project -All | Add-BindingRedirect. Il change newVersion pour Newtonsoft.Json en 4.5.0.0. Mais le problème reste non résolu.

S'il vous plaît aidez-moi à résoudre ce problème.

10
shashwat

Je sais que c'est vieux, mais j'ai juste rencontré le même problème. Mon problème était que plusieurs projets dans la solution utilisaient Newtonsoft.Json, mais certains avaient des versions différentes. Je les ai tous mis à jour au plus récent (9.0.1 au fur et à mesure que je tape) et le problème a disparu.

Quoi qu'il en soit ... si ce problème persiste, veillez à mettre à jour le package dans TOUS les projets de la solution.

HTH

12
Casey Crookston

Après avoir essayé l'essentiel de ce qui précède (et d'autres publications), j'ai désinstallé avec le gestionnaire de paquets tous les éléments suivants du projet concerné:

Microsoft.AspNet.WebApi
Microsoft.AspNet.Client
Microsoft.AspNet.Core
Microsoft.AspNet.WebHost
Newtonsoft.Json

Ensuite, réinstallez Microsoft.AspNet.WebApi, qui a automatiquement installé .Client, .Core, .WebHost, .Json. 

2
Kenmeister

Ajouter une référence Newtonsoft dans mon projet MVC résout le problème pour moi.

2
Zafar

J'ai eu cette erreur moi-même, et d'abord utilisé Update-Package –reinstall Newtonsoft.Json -IncludePrerelease cela n'a pas fonctionné, puis utilisé Install-Package Newtonsoft.Json. ça a marché.

1
samira riazati

Exécuter Update-Package Newtonsoft.Json -Reinstall

Cela devrait supprimer la référence à votre version 4.5 et réinstaller la version plus récente référencée dans votre package.config. Il mettra également à jour la redirection de liaison, qui devrait alors être la suivante:

<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
  <bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0" />
</dependentAssembly>

Comme vous avez dit dans votre question que vous aviez déjà essayé cela, vous voudrez peut-être d'abord essayer de supprimer manuellement la référence existante. Vous pouvez également vous assurer que les fichiers ne sont pas en lecture seule sur le disque ou autrement verrouillés par le contrôle de source.

1
Matt Johnson

vérifiez la version 'Newtonsoft.Json' dans les références du projet. Ajoutez cette version dans la configuration Web. Cela fonctionnera . Par exemple: Votre Webconfig ressemble à ceci:

<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json"publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="7.0.0.0"/>
</dependentAssembly>

Si votre version dans les références est '9.0.0.0' Changez ceci:

<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json"publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-7.0.0.0" newVersion="9.0.0.0"/>
</dependentAssembly>
0
SDK

Dans mon cas, le code suivant était présent dans ma version de débogage locale de la solution, mais pas dans la version de code de mon serveur actif. L'ajout du code à mon serveur Le fichier Web.config a résolu le problème.

<runtime>
<assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
  <dependentAssembly>
    <assemblyIdentity name="EntityFramework" publicKeyToken="b77a5c561934e089" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" />
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" />
    <bindingRedirect oldVersion="0.0.0.0-9.0.0.0" newVersion="9.0.0.0" />
  </dependentAssembly>
</assemblyBinding>

0
Versatile

exécutez cette commande dans la console du gestionnaire de packages:

PM> Install-Package Newtonsoft.Json -Version 6.0.1
0
codeWorm
  1. Dans l'explorateur de votre solution VS, supprimez la référence Newtonsoft.Json.
  2. Téléchargez les fichiers binaires 6.0 sur les fichiers binaires Newtonsoft ici
  3. Extraire les fichiers
  4. Ajoutez la bibliothèque Newtonsoft manuellement. Dans Visual Studio, cliquez avec le bouton droit sur Référence et sélectionnez Ajouter une référence.
  5. Cliquez sur Parcourir
  6. Accédez aux fichiers extraits sous Net45 et sélectionnez Newtonsoft.Json.dll.
  7. Si cela ne fonctionne pas, essayez d’utiliser Net40 en suivant toute la procédure.
0
Ronald Ramos

Changez la configuration comme indiqué ci-dessous:

0
Ash18