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
Selon les réponses aux questions similaires, j’ai essayé de suivre:
Update-Package –reinstall Newtonsoft.Json
dependentAssembly
config de Web.config
pour Newtonsoft.Json
newVersion
par 6.0.0.0
et 7.0.0.0
dans dependentAssembly
. Cela a donné naissance à une nouvelle erreur.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.
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
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.
Ajouter une référence Newtonsoft dans mon projet MVC résout le problème pour moi.
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é.
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.
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>
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>
exécutez cette commande dans la console du gestionnaire de packages:
PM> Install-Package Newtonsoft.Json -Version 6.0.1
Changez la configuration comme indiqué ci-dessous: