Ne pouvait pas charger le fichier ou l'Assemblée 'Newtonsoft.Json' ou une de ses dépendances. La définition du Manifeste ne correspond pas à la référence de l'assemblage

Choses que j'ai essayé après recherche:

  1. dans le Web.Config a mis une reliure sur l'ancienne version:

    <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.1.0" />
    </dependentAssembly>
    
  2. Modifier mon .fichier csproj pour s'assurer qu'il n'y a Qu'une seule référence Newtonsoft

    <Reference Include="Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
       <HintPath>..packagesNewtonsoft.Json.6.0.1libnet45Newtonsoft.Json.dll</HintPath>
       <SpecificVersion>False</SpecificVersion>
       <Private>True</Private>
    </Reference>
    
  3. cherchez dans mon ordinateur chaque Newtonsoft.Json.dll et supprimer chaque version non 6.0.1 et supprimer le contenu de mon dossier temp

  4. réparer/réinstaller le paquet dans la console nuget manager

il réussit sur la construction, mais obtient l'erreur en allant au site.

MODIFIER

ok, alors j'ai essayé de réinstaller comme chaque paquet nuget, et il semble avoir ajouté la version 4.5 du newtonsoft.json.dll, mais j'obtiens la même erreur. Mon projet cible freamork is .NET 4.5.1 et voici la trace de la pile que je reçois maintenant:

erreur de serveur dans L'Application'/'.

ne pouvait pas charger le fichier ou l'assemblage Newtonsoft.Json' ou une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)

Description: Une exception non gérée s'est produite pendant l'exécution de la demande web actuelle. Veuillez consulter la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails De L'Exception: Système.IO.FileLoadException: ne pouvait pas charger le fichier ou l'Assemblée Newtonsoft.Json' ou une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)

Source D'Erreur:

une exception sans entrave a été générée lors de l'exécution de la requête web en cours. Les informations concernant l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

trace de la charge D'assemblage: les informations suivantes peuvent être utiles pour déterminer pourquoi Newtonsoft de l'assemblage.Json n'a pas pu être chargé.

= = = pré-bind information sur l'état == = LOG: DisplayName = Newtonsoft.Json (Partiel) WRN: information liant partiellement était fourni pour un montage: WRN: nom de L'assemblage: Newtonsoft.JSON / nom de domaine: 2 WRN: une liaison partielle se produit lorsque seule une partie du nom d'affichage de l'assemblage est fournie. WRN: cela pourrait avoir pour conséquence que le liant charge un assemblage incorrect. WRN: il est recommandé de fournir une identité textuelle entièrement spécifiée pour l'assemblage, WRN: qui se compose du nom simple, de la version, de la culture et de la clé publique. WRN: voir livre blanc http://go.microsoft.com/fwlink/?LinkId=109270 pour plus d'information et des solutions communes à cette question. JOURNAL: Appbase = file:///c:/users/utilisateur/documents/visual studio 2013/Projets/foo/bar/ LOG: chemin privé Initial = c:usersuserdocumentsvisual studio 2013Projectsfoobarbin Appel à l'assemblage: (inconnu). === LOG: cette bind commence dans le contexte de chargement par défaut. LOG: Utilisation du fichier de configuration de l'application: c:usersuserdocumentsvisual studio 2013Projetsfoobarweb.config LOG: en utilisant le fichier de configuration de l'hôte: C:UsersuserDocumentsIISExpressconfigaspnet.config LOG: en utilisant le fichier de configuration de la machine C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. LOG: la Politique n'est pas appliquée à la référence pour le moment (liaison d'assemblage privée, personnalisée, partielle ou basée sur l'emplacement). LOG: tentative de téléchargement d'un nouveau fichier URL:/ / C: / Users / user / AppData/Local/Temp / 1 / Temporary ASP.NET Fichiers/root/48686d37/9d7a6572 / Newtonsoft.Json.DLL. LOG: tentative de téléchargement d'un nouveau fichier URL:/ / C: / Users / user / AppData/Local/Temp / 1 / Temporary ASP.NET fichiers/root/48686d37/9d7a6572 / Newtonsoft.Json / Newtonsoft.Json.DLL. LOG: tentative de téléchargement d'un nouveau fichier URL://c:/Utilisateurs/Utilisateurs/documents/visual studio 2013/Projects/foo/bar / bin / Newtonsoft.Json.DLL. LOG: Utilisation du fichier de configuration de l'application: c:usersuserdocumentsvisual studio 2013Projectsfoobarweb.config LOG: utiliser l'hôte fichier de configuration: C:UsersuserDocumentsIISExpressconfigaspnet.config LOG: en utilisant le fichier de configuration de la machine C:WindowsMicrosoft.NETFrameworkv4.0.30319configmachine.config. LOG: redirection trouvée dans le fichier de configuration de l'application: 4.5.0.0 redirigée vers 6.0.1.0. JOURNAL: Post-politique de référence: Newtonsoft.Json, Version=6.0.1.0, Culture=neutre, PublicKeyToken=30ad4fe6b2a6aeed LOG: tentative de téléchargement d'un nouveau fichier URL:/ / C: / Users / user / AppData/Local/Temp / 1 / Temporary ASP.NET fichiers/root/48686d37/9d7a6572 / Newtonsoft.Json.DLL. LOG: tentative de téléchargement d'un nouveau fichier URL:/ / C: / Users / user / AppData/Local/Temp / 1 / Temporary ASP.NET fichiers/root/48686d37/9d7a6572 / Newtonsoft.Json / Newtonsoft.Json.DLL. LOG: tentative de téléchargement d'un nouveau fichier URL://c:/Utilisateurs/Utilisateurs/documents/visual studio 2013/Projects/foo/bar / bin / Newtonsoft.Json.DLL. WRN: la comparaison du nom de l'assemblage a donné lieu à l'inadéquation: version majeure ERR: échec de la configuration complète de l'assemblage (hr = 0x80131040). Sondage terminé.

Trace De La Pile:

[FileLoadException: ne pouvait pas charger le fichier ou l'assemblage Newtonsoft.Json' ou une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)]

[FileLoadException: ne pouvait pas charger le fichier ou l'assemblage Newtonsoft.Json, Version=6.0.1.0, Culture=neutre, PublicKeyToken=30ad4fe6b2a6aeed" ou l'une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)] Système.Réflexion.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, la Preuve assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +0 Système.Réflexion.RuntimeAssembly.nLoad (AssemblyName fileName, String codeBase, la Preuve assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks) +34 Système.Réflexion.RuntimeAssembly.InternalLoadAssemblyName (AssemblyName assemblyRef, Evidence assemblySecurity, RuntimeAssembly reqassemblly, StackCrawlMark& stackMark, Intprivhostbinder, Boolean throwilenotfound, Boolean forIntrospection, Boolean suppressSecurityChecks) + 152 Système.Réflexion.RuntimeAssembly.InternalLoad (string assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean forIntrospection) +77 Système.Réflexion.RuntimeAssembly.InternalLoad (string assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection) +16 Système.Réflexion.Assemblée.Charge (chaîne d'assemblage) + 28 Système.Web.Configuration.CompilationSection.LoadAssemblyHelper (String assemblyName, Boolean starDirective) +38

[ConfigurationErrorsException: impossible de charger le fichier ou l'assembly 'Newtonsoft.Json, Version=6.0.1.0, Culture=neutre, PublicKeyToken = 30ad4fe6b2a6aeed' ou l'une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)] Système.Web.Configuration.CompilationSection.LoadAssemblyHelper (chaîne assemblyName, boolean starDirective) +752 Système.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBindirectory () +218 Système.Web.Configuration.CompilationSection.LoadAssembly (AssemblyInfo ai) + 130 Système.Web.Compilation.BuildManager.Getreferencedassembllies (CompilationSection compConfig) + 170 Système.Web.Compilation.BuildManager.Getprestartinitmethodsfrreferencedassemblies () + 91 Système.Web.Compilation.BuildManager.CallPreStartInitMethods (String preStartInitListPath, Boolean& isRefAssemblyLoaded) + 285 Système.Web.Compilation.BuildManager.ExecutePreAppStart () +153 Système.Web.Accueillir.HostingEnvironment.Initialize (ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, policy level policyLevel, Exception appDomainCreationException) +516

[HttpException (0x80004005): impossible de charger Newtonsoft file or assembly.Json, Version=6.0.1.0, Culture=neutre, PublicKeyToken = 30ad4fe6b2a6aeed' ou l'une de ses dépendances. L'assemblée manifeste définition ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)] Système.Web.HttpRuntime.FirstRequestInit (HttpContext context) + 9913572 Système.Web.HttpRuntime.EnsureFirstRequestInit (HttpContext context) + 101 Système.Web.HttpRuntime.ProcessRequestNotificationPrivate (IIS7 Workerrequest wr, HttpContext context) +254

Information de Version: Microsoft. NET Framework Version: 4.0.30319; ASP.NET Version: 4.0.30319.18408

165
demandé sur Andrea 2014-03-27 14:57:49

26 réponses

pour résoudre ce problème, j'ai veillé à ce que tous mes projets utilisent la même version en exécutant la commande suivante et en vérifiant les résultats:

update-package Newtonsoft.Json -reinstall

et, enfin, j'ai retiré ce qui suit de ma toile.config:

  <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>

si vous voulez assurer tous vos Newtonsoft.Les paquets Json sont la version même , vous pouvez spécifier la version comme suit:

update-package Newtonsoft.Json -version 6.0.0 -reinstall
231
répondu user1477388 2015-11-19 13:57:24

J'utilise Newtonsoft.Json v6.0.3, mais c'est ce que j'avais à faire dans mon Web.fichier de configuration:

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

notez que même si j'utilise 6.0.3, j'ai dû mettre newVersion="6.0.0.0"

dans mes paquets.fichier de configuration j'ai:

<package id="Newtonsoft.Json" version="6.0.3" targetFramework="net45" />
75
répondu CraigV 2014-06-24 15:16:22

j'ai essayé ce qui suit après avoir déjà vérifié que mon ordinateur avait la même version dans tous les endroits et que mes projets pointaient tous vers le même chemin de référence. J'avais également fait en sorte que la reliure de l'ancienne version était leur et lié à la version actuelle de dll que j'avais.

je travaille dans un environnement avec un cadre strict et l'équipe de cadre souvent bouleverser la version avec les dll différentes.

comment j'ai fixé ce problème était d'exécuter la console de gestionnaire de paquets dans visual studio (2013). De là, j'ai lancé la commande suivante:

update-package Newtonsoft.Json -reinstall

suivi de

update-package Newtonsoft.Json

cela a été passé en revue et mis à jour tous mes fichiers de configuration et les fichiers de projets pertinents. Forçant tous à la même version de la dll. Qui était initialement la version 4.5 avant de mettre à jour à nouveau pour obtenir la dernière.

51
répondu Samuel 2015-02-03 05:03:27

j'ai eu le même message d'erreur et, comme vous l'avez mentionné, il était dû à différentes versions du Newtonsoft.Json.dll référencée.

certains projets dans ma solution MVC ont utilisé le paquet NuGet pour la version 4 de cette dll.

j'ai ensuite ajouté un paquet NuGet (pour Salesforce dans mon cas) qui a apporté Newtonsoft.La version 6 de Json est une dépendance à l'un des projets. Qu'est ce qui a déclenché le problème pour moi.

Pour nettoyer les choses, j'ai utilisé la section Mises à jour dans le Gestionnaire de paquets NuGet pour la solution (menu Outils désactivés ou clic droit sur la solution) pour mettre à jour le Json.Net paquet tout au long de la solution de sorte qu'il était la même version pour tous les projets.

après cela, j'ai juste vérifié les fichiers de configuration de L'application pour m'assurer que toutes les lignes de redirection obligatoires allaient vers la version de mon choix comme ci-dessous.

<bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="6.0.0.0" />
25
répondu S__ 2014-05-16 15:17:05

Ok, je pense que j'ai réussi à le faire marcher maintenant. J'ai supprimé tous les Newtonsoft.Json.dll sur ma machine qui n'était pas la dernière version que je pouvais trouver, je me suis assuré d'avoir la dernière version dans NuGet, et de la construire et je me suis assuré que c'était la dernière version dans le dossier bin, et j'ai laissé les changements dans le web.config et le .csproj. Maintenant je suis sur une autre erreur, donc ça doit marcher..

14
répondu noobieDev 2014-04-24 15:22:12

j'ai essayé les pas par Oleg, et ils ont travaillé pour ma même situation.

Suit:

  1. Exécuter update-package Newtonsoft.Json -reinstall dans le Gestionnaire de paquets.

  2. supprimez votre bin en activant la visualisation des fichiers cachés et en supprimant le dossier bin .

  3. fermez votre Studio et rouvrez-le.

  4. Lancez à nouveau votre projet. Je crois qu'il devrait être ok!

4
répondu Matthew Cavallo 2017-07-08 03:00:31

Dans mon cas, c'était juste une question de:

Tools -> NuGet Package Manager -> Package Manager Settings -> Clear Cache

le problème a été causé quand j'ai remappé un dossier TFS.

3
répondu daniloquio 2015-06-01 15:35:41

en commentant cette partie sur mon web.config a résolu mon problème:

<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>

mais bien sûr vous devez vous assurer que vous avez mis à jour ou que vous avez la bonne version en faisant cela dans votre console de gestionnaire de paquets:

update-package Newtonsoft.Json -reinstall
3
répondu Willy David Jr 2017-10-24 16:25:43

si vous travaillez avec une sorte de subversion: supprimer le projet et de le re-télécharger, il a travaillé pour moi :S

2
répondu ch2o 2014-09-24 00:11:36

Vous pouvez résoudre le problème en ajoutant des lignes ci-dessous dans le web.fichier de configuration.

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-8.0.0.0" newVersion="8.0.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
2
répondu Jineesh Uvantavida 2017-11-10 10:43:27

ce qui m'a réellement aidé était de désactiver la re-construction et d'utiliser L'option de re-construction VisualStudio sur mon projet.

2
répondu Shaulian 2017-11-27 16:52:30

j'ai eu la même question sur un projet D'essai qui faisait référence à un projet MVC 5. Cela s'est produit après que j'ai fusionné avec un projet MVC 5. Je l'ai corrigé en installant les mises à jour de Visual studio 2012 comme expliqué ici dans la réponse D'André.

  • dans votre studio, allez à
    1. Outils> Extensions Et Mises À Jour
    2. sélectionnez" Updates " dans la liste accordéon à gauche.
    3. sélectionner "Mises À Jour Du Produit".
    4. mise à jour de la dernière version
1
répondu Michael Kassa 2017-05-23 11:55:19

aucune des réponses, y compris la réponse cochée, n'a fonctionné pour moi.

la solution était beaucoup plus simple. J'ai d'abord retiré les références de ma couche BUS. Ensuite supprimé la dll du projet( pour s'assurer qu'il a disparu), puis réinstallé JSON.NET de nuget packeges. Et le plus délicat ,c'était de l'éteindre encore et encore.

je viens de redémarrer visual studio, et ça a marché!

donc, si vous essayez tout possible et ne peut toujours pas résoudre le problème, juste essayer d'éteindre visual studio et de nouveau, il pourrait aider.

1
répondu Zafer Sernikli 2015-06-01 08:41:13

Je ne sais pas pourquoi, mais dans mon cas, même si je supprime le dossier bin du projet, quand je construis le projet il copie l'ancienne version de newtonsoft.json, j'ai copié la dll de la nouvelle version à partir du dossier packages et ça se résout pour l'instant.

1
répondu mesut 2015-11-08 10:53:33

si aucun de ces travaux, s'il vous plaît vérifier cette réponse:

https://stackoverflow.com/a/12011221/150370

( TL;DR : Supprimer l'espace de noms xml de la balise configuration dans votre fichier de configuration. Sinon, les redirections obligatoires seront ignorées)

1
répondu German Latorre 2017-05-23 11:33:24

dans certains cas si vous supprimez vos dossiers Bin et Obj résoudra ce problème.

1
répondu Ivan Ruski 2017-05-09 14:00:26

Je l'ai résolu par supprimer la version inférieure de Newtonsoft.json.dll dans le dossier bin et ajout de Newtonsoft.json.dll V6.0.0.0 et a supprimé la toile suivante.éléments de configuration

<dependentAssembly>
    <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed"/>
    <bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.8"/>
</dependentAssembly>
1
répondu user2017678 2017-07-08 17:04:43

étapes Faciles. (1) lancer "update-package Newtonsoft.JSON-reinstaller" dans le gestionnaire de paquets.

(2)supprimez votre bin en activant la visualisation des fichiers cachés et la suppression du dossier bin.

(3)fermez votre studio de visualisation et rouvrez-le.

(4) maintenant, exécutez votre projet à nouveau. Je crois qu'il devrait être ok

0
répondu Odeyinka Olubunmi 2015-04-15 10:43:06

j'ai frappé ce problème parce que j'avais: projet a (un bureau .exe) se référer au projet B (a portable .DLL.) A & B avait différentes versions de JSON.Net, et donc il y a eu un conflit de chargeurs. Une fois que j'ai fait toutes les versions de JSON.net la même chose, ça a marché. (C'est en fait ce que font certaines des solutions ci - dessus-je dis simplement pourquoi cela fonctionne)

0
répondu Mike S 2015-05-16 18:28:04

j'ai eu du mal avec ce projet plus récent et plus ancien.

j'ai réussi à trouver le problème après avoir vérifié quelle version de la dll qui était réellement dans le dossier bin.

j'ai eu un script de post-construction qui a copié des assemblages dépendants à partir d'un dossier de bibliothèque dll vers le dossier bin. Une configuration commune des jours avant nuget.

donc à chaque fois que j'ai construit le script de post-construction a remplacé la version correcte de Json.net avec le plus vieux

0
répondu Fredrik Stolpe 2015-05-27 12:00:24

j'avais exactement le même problème et Visual Studio 13 bibliothèque par défaut pour moi était 4.5, donc j'ai 2 solutions un est de prendre la référence à ce dans le fichier webconfig. C'est le dernier recours et ça marche.

le message d'erreur indique qu'il y a un problème à cet endroit /Projects/foo/bar/bin/Newtonsoft.Json.DLL. où est la DLL! Une vérification de propriété de base m'a dit qu'il était 4.5.0.0 ou similaire donc j'ai changé le webconfig pour regarder jusqu'à 4.5 et utiliser 4.5.

0
répondu Mcole1976 2015-08-13 14:40:59

aucune de ces options n'a fonctionné pour moi, en fin de compte;

Test > Paramètres De Test > *.testrunconfig

j'ai dû ajouter une nouvelle ligne

<DeploymentItem filename="packages\Newtonsoft.Json.4.5.8\lib\net40\Newtonsoft.Json.dll" />

assurez-vous que le chemin et la version sont corrects pour votre installation.

0
répondu Daniel Haselden 2015-09-07 22:21:14

j'ai eu le même problème. J'ai créé un projet d'api web et je l'ai ensuite mis à niveau de .net 4.5.1 à .net 4.6.1. Fermer L'IDE, arrêter L'IIS, et supprimer le contenu de la C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\ dir a résolu le problème.

HTH

0
répondu CaffeineDrivenDevelopment 2016-12-09 01:04:49

ce problème n'a pas été résolu pour moi en rafraîchissant les paquets NuGet ou en effectuant un" nettoyage " sur le projet. Il a été résolu en éliminant le dossier "obj" manuellement.

0
répondu Alexander P. Brown 2017-06-29 20:47:25

voici ma solution à ce problème,assurez-vous que le numéro de version dans appconfig ou packageconfig est le même que la version de référence dans vos références. Voir ici

0
répondu 2017-10-12 13:00:03

j'ai eu le même problème avec dotnet core et j'ai réussi à le corriger en nettoyant le cache NuGet.

ouvrez la powershell et entrez la commande suivante.

dotnet nuget locals all --clear

puis J'ai fermé Visual Studio, Je l'ai ouvert de nouveau et j'ai entré la commande suivante dans la Console du Gestionnaire de paquets:

Update-Package

NuGet devrait maintenant restaurer tous les paquets et popultes le cache nuget à nouveau.

après cela je j'ai pu construire et démarrer mon WebAPI dotnet core dans un conteneur Linux.

0
répondu datoml 2018-10-04 09:23:58