簡體   English   中英

無法加載文件或程序集'Newtonsoft.Json,版本 = 3.5.0.0

[英]Could not load file or assembly '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<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,但它仍然無法正常工作。 有人可以幫我解決這個問題,也請指導我閱讀簽名請求的方式是否正確,如果不是,請指定正確的方式。

謝謝:

我猜你下載的是 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 版本構建的。

您可以使用 package 管理器使用其 nuget package 'Newtonsoft.Json' 對其進行更新。

PM> update-package newtonsoft.json

在 package 管理器控制台 Visual Studio 2013

PM> Install-Package Newtonsoft.Json

然后重新啟動 Visual Studio。

當我遇到這個問題時,發現yourproject/packages中有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的引用。 做了一個構建和成功。

打開 Package 管理控制台並執行以下命令:

update-package newtonsoft.json 

這對我有用。

PM> 更新包 newtonsoft.json 它工作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM