2011-05-30 2 views
14

Je travaille en C# 4.0 pour lire une demande signée, je suis en utilisant le code suivantImpossible de charger le fichier ou l'assembly « Newtonsoft.Json, Version = 3.5.0.0

FacebookApp fap = new FacebookApp(); 
fap.AppId = "789485219211963"; // App ID 
fap.AppSecret = "365ee9f5823698536767d608cf572a49"; 

string requested_Data = Request.Form["signed_request"]; 
FacebookSignedRequest fsr = fap.ParseSignedRequest(requested_Data); 
IDictionary<string, string> myDic = fsr.Dictionary; 

string name = myDic["name"]; 
string algorithm = myDic["algorithm"]; 

Response.Write(requested_Data + "<br>" + algorithm + "<br>" + name + "<br>"); 

Mais sur la ligne en surbrillance j'ai reçu exception suivante

Impossible de charger le fichier ou l'assemblage 'Newtonsoft.Json, version = 3.5.0.0, Culture = neutral , PublicKeyToken = 30ad4fe6b2a6aeed' ou une de ses dépendances. La définition de manifeste de l'assembly située ne correspond pas à la référence d'assembly. (Exception de HRESULT: 0x80131040)

J'ai téléchargé Newtonsoft.Json. version 1 au lieu de la version 2 mais cela ne fonctionne toujours pas. Quelqu'un peut-il m'aider à résoudre ce problème, s'il vous plaît me guider soit ma façon de lire la demande signée est correcte ou non, s'il vous plaît préciser la bonne façon.

Merci:

+0

Quelle ligne en surbrillance? Qu'avez-vous fait avec le téléchargement une fois que vous l'avez obtenu? –

Répondre

16

Je devine que vous donwloaded Newtonsoft.Json v4.0, pas 3.5. Dernière version 3.5 est la libération 8.

http://json.codeplex.com/releases/view/50552

Je suppose que vous pourriez être en mesure de faire une version en avant dans votre web.config/app.config afin d'utiliser 4,0 au lieu de 3,5, parce que certains bibliothèque vous utilisez est probablement construit contre la version 3.5 de Newtonsoft.

+0

Oui, vous avez raison, maintenant j'ai utilisé Newtonsoft.json 3.5 de http://json.codeplex.com/releases/view/50552 et cela a fonctionné. Merci Jishi –

+4

Pour référence future sur la configuration de transfert d'assembly: http://msdn.microsoft.com/en-us/library/7wd6ex19.aspx –

8

Vous pouvez le mettre à jour avec son paquet de puces 'Newtonsoft.Json' en utilisant le gestionnaire de paquets.

PM> update-package newtonsoft.json 
3

Dans la console de gestion de package Visual Studio 2013

PM> Install-Package Newtonsoft.Json 

Ensuite, redémarrez Visual Studio.

2

Lorsque j'ai rencontré ce problème, j'ai trouvé qu'il y avait 2 dossiers similaires dans votre projet/paquets, l'un est la version 6.0.5, l'autre est 5.0.6.

J'ai supprimé le 5.0.6 et le problème a disparu.

0

J'ai eu le même problème avec mon projet Xamarin.Forms PCL WinPhone8.1 après la mise à niveau de tous les paquets NuGet pour la solution. Le problème était avec Newtonsoft.Json v9.0.0 dans le projet winPhone8.1.

Tous les autres projets ont fonctionné correctement. Passé deux jours à chaluter tous les conseils et finalement résolu le problème en supprimant le projet, en tirant un clone du projet de mon git et en rajoutant dans la solution. Échec toujours (bien que la version git a fonctionné bien avant la validation.)

La référence supprimée pour Newtonsoft, réinstallé l'ancienne version 8.0.3, puis mis à niveau via NuGet à V9.0.0.

Ensuite, toutes les références à Newtonsoft ont été supprimées des répertoires Bin/ARM/Debug, Bin/x86/Debug et Obj/ARM/Debug/MSIL du projet winPhone8.1. A fait une construction et un succès.

0

PM> update-package newtonsoft.json Cela fonctionne

+0

Pourriez-vous ajouter quelques détails, pour rendre votre réponse plus utile? –

+0

Tout le monde ne sait peut-être pas que vous lui avez demandé d'exécuter l'instruction dans la console du gestionnaire de packages. –

Questions connexes