我正在使用c#4.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>");
但是在突出显示的行上我收到了以下异常
无法加载文件或程序集 'Newtonsoft.Json,版本= 3.5.0.0, 文化=中性, PublicKeyToken = 30ad4fe6b2a6aeed'或 其中一个依赖项。位于 程序集的清单定义 与程序集引用不匹配。 (HRESULT异常:0x80131040)
我下载了Newtonsoft.Json。发布1而不是发布2但它仍然无法正常工作。 有人可以帮我解决这个问题吗,请指导我以我的方式阅读签名请求是否正确,如果没有请指明正确的方法。
感谢:
答案 0 :(得分:18)
我猜你已经下载了Newtonsoft.Json v4.0,而不是3.5。 3.5的最新版本是第8版。
http://json.codeplex.com/releases/view/50552
我想您可以在web.config / app.config中进行版本转发,以便使用4.0而不是3.5,因为您使用的某些库可能是针对Newtonsoft的3.5版本构建的。< / p>
答案 1 :(得分:9)
您可以使用包管理器使用其nuget包'Newtonsoft.Json'更新它。
PM> update-package newtonsoft.json
答案 2 :(得分:3)
在包管理器控制台Visual Studio 2013中
PM> Install-Package Newtonsoft.Json
然后重新启动Visual Studio。
答案 3 :(得分:2)
当我遇到这个问题时,我发现你的项目/包中有2个类似的文件夹,一个是版本6.0.5,另一个是5.0.6。
我删除了5.0.6,问题就消失了。
答案 4 :(得分:1)
在升级解决方案的所有NuGet包之后,我的Xamarin.Forms PCL WinPhone8.1项目遇到了同样的问题。问题出在winPhone8.1项目中的Newtonsoft.Json v9.0.0。
所有其他项目都正常运作。花了两天时间搜索所有建议,最后通过删除项目,从我的git中拉出项目的克隆并添加回解决方案来解决问题。仍然失败(尽管git版本在提交之前工作正常。)
删除了Newtonsoft的参考资料,重新安装旧版本8.0.3,然后通过NuGet升级到V9.0.0。
然后从winPhone8.1项目Bin / ARM / Debug,Bin / x86 / Debug和Obj / ARM / Debug / MSIL和MDIL目录中删除了对Newtonsoft的所有引用。做了构建和成功。
答案 5 :(得分:0)
打开Package Manager控制台并执行以下命令:
update-package newtonsoft.json
这对我有用。
答案 6 :(得分:-1)
PM&GT; update-package newtonsoft.json它可以工作