无法加载文件或程序集’Newtonsoft.Json,Version = 3.5.0.0

我正在使用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 myDic = fsr.Dictionary; string name = myDic["name"]; string algorithm = myDic["algorithm"]; Response.Write(requested_Data + "
" + algorithm + "
" + name + "
");

但在突出显示的行上,我收到了以下exception

无法加载文件或程序集“Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed”或其中一个依赖项。 定位的程序集的清单定义与程序集引用不匹配。 (HRESULTexception:0x80131040)

我下载了Newtonsoft.Json。 发布1而不是发布2但它仍然无法正常工作。 有人可以帮助我解决这个问题,也请指导我以我的方式阅读签名请求是否正确如果不是请指定正确的方法。

谢谢:

我猜你已经下载了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版本构建的。

您可以使用包管理器使用其nuget包’Newtonsoft.Json’更新它。

 PM> update-package newtonsoft.json 

在包管理器控制台Visual Studio 2013中

 PM> Install-Package Newtonsoft.Json 

然后重新启动Visual Studio。

当我遇到这个问题时,我发现你的项目/包中有2个类似的文件夹,一个是版本6.0.5,另一个是5.0.6。

我删除了5.0.6,问题就消失了。

在为解决方案升级所有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的所有引用。 做了一个构建和成功。

PM> update-package newtonsoft.json它的工作原理

打开包管理器控制台并执行以下操作:

 update-package newtonsoft.json 

这对我有用。