web-dev-qa-db-fra.com

Impossible de charger le fichier ou l'assembly 'Newtonsoft.Json, Version = 7.0.0.0

Je fais face à l'erreur ci-dessous 

Impossible de charger le fichier ou l'assembly 'Newtonsoft.Json, Version = 7.0.0.0, Culture = neutre, PublicKeyToken = 30ad4fe6b2a6aeed 'ou l'un de ses dépendances. La définition du manifeste de l’Assemblée localisée n’est pas correspondre à la référence de l'Assemblée. (Exception de HRESULT: 0x80131040)

Je pourrais voir le ci-dessous dans Web.config

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

Alors je l'ai changé pour 

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

Dans packeges.config, je pouvais voir l'entrée ci-dessous 

Mais je suis toujours confronté au même problème. S'il vous plaît aider

17
Midhun Murali

Beaucoup de choses peuvent mal se passer et ce message d'erreur ne vous dit rien. 

Mais je suis toujours confronté au même problème.

Le moyen le plus simple sera peut-être d’essayer de réinstaller le paquet.

Allez sur TOOLS> NuGet Package Manager et sélectionnez Package Manager Console. Exécutez les deux commandes suivantes:

uninstall-package newtonsoft.json -force
install-package newtonsoft.json

Si vous obtenez toujours une erreur après cela, alors ce qui a bien fonctionné pour moi, c'est que j'ai supprimé la section de Json.Net de mon fichier .config. 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 l'emballage lui-même, je crains que cette étape manuelle ne soit obligatoire. Dans la console du gestionnaire de paquets, exécutez à nouveau: 

Update-Package –reinstall Newtonsoft.Json

Consultez également votre version .Net des projets de votre solution.

Ceci est le solution Microsoft avec le déchargement du projet.

37
ekostadinov

J'ai eu le même problème. J'ai suivi les étapes de désinstallation/réinstallation forcée d'ekostadinov, mais je devais ajouter une étape supplémentaire:

J'étais en train de mettre à niveau ma solution vers Framework 4.5.2. Mon ancien fichier Web.Config avait un espace de noms dans la balise de configuration.

<configuration xmlns="http://schemas.Microsoft.com/.NetConfiguration/v2.0">

J'ai mis à jour pour:

<configuration>

Ensuite, bindingRedirect devrait fonctionner pour toute version de NewtonSoft que vous utilisez:

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

0
KAW

J'ai eu le même problème et faire la désinstallation et la réinstallation n'a pas aidé. À l'époque, j'essayais d'installer la version la plus récente (10.0.3) de Newtonsoft.Json. J'ai fini par installer la version 7.0.1, puis un autre article proposant de copier ce fichier .dll dans:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE. Ce que j'ai fait.

Lancez à nouveau le processus d’installation de l’API REST, puis une erreur différente. Lors de la tentative d'installation de Microsoft.Rest.ClientRuntime 2.3.2, cela a échoué. Pour cela, je suis simplement allé dans NuGet et l'ai installé dans le projet dans lequel j'avais installé l'API REST. 

Lancez l’installation de l’API REST et installez-la cette fois-ci.

Oh, et si cela aide les recherches, je faisais le didacticiel Azure Immersion 02-API App à l’aide de VS2015 sur Windows Server 2012R2.

0
PHBeagle

Cela peut arriver si package.config contient 2 mêmes noms de packages avec une version différente.

Par exemple,

<package id="System.Spatial" version="5.6.2" targetFramework="net45" />
<package id="System.Spatial" version="5.6.4" targetFramework="net45" />

Je vous remercie.

0

Merci à @ekostadinov. J'ai pu le faire fonctionner avec la solution de @ekostadinov. Dans mon cas, le modèle Web MVC par défaut contenait NewtonSoft JSON version 6. J'avais ajouté une bibliothèque de classes et j'avais installé NewtonSoft JSON version 9 à partir du gestionnaire de packages Nuget.

J'ai essayé de supprimer la référence de mon projet Web, de la configuration de paquetages et des dépendances, mais j'ai quand même eu une erreur. Maintenant, je recevais un message d'erreur indiquant qu'il était impossible de trouver Newtonsoft JSON version 6. Initialement, un message d'erreur indiquant que je ne pouvais pas trouver Newtonsoft JSON version 9.

Ensuite, j'ai suivi les étapes de @ekostadinov. 

uninstall-package newtonsoft.json -force
install-package newtonsoft.json

J'ai reçu un avertissement concernant une dépendance dans la console du gestionnaire de paquets, mentionnant une dépendance avec la version de Web.Grease dll. Mais de toute façon, c'était réussi. 

Juste pour vérifier, j'ai exécuté la dernière commande mentionnée dans le post ci-dessus

Update-Package –reinstall Newtonsoft.Json

Il a également fonctionné sans aucun avertissement.

Maintenant, je peux utiliser la version 9 dans tous mes projets.

0
sam113

J'ai eu la même erreur et je l'ai corrigé en effectuant un «nettoyage» de ma solution. J'utilise Newtonsoft.Json dans une application UWP.

0
Stephanvs

la plupart du temps, cette erreur se produit car différents assemblages dépendent d'une version spécifique d'un autre assemblage.

la solution la plus simple consiste à mettre à jour tous les packages qui dépendent de Newtonsoft.Json à l'aide du gestionnaire de packages de nuget.

il définira automatiquement tous les fichiers de configuration de votre projet.

0
SHM