2016-01-13 148 views
4

我試圖解析Web API解決方案中類庫中的JSON文件。它是一個常規的C#類庫,而不是Portable類。Newtonsoft.Json版本8.0.2無法加載文件或程序集錯誤

我試過每一個答案mentioned here,但它仍然無法正常工作!我不斷收到同樣的錯誤是:

無法加載文件或程序集「Newtonsoft.Json,版本= 8.0.0.0,文化=中性公鑰= 30ad4fe6b2a6aeed」或它的一個依賴。定位的程序集清單定義與程序集引用不匹配。 (從HRESULT異常:0x80131040) 「:」 Newtonsoft.Json,版本= 8.0.0.0,文化=中性公鑰= 30ad4fe6b2a6aeed

下面是代碼:

public IList<BranchRM> AllBranches() 
{ 
    var result = new List<BranchRM>(); 
    var dataSourcePath = AppDomain.CurrentDomain.BaseDirectory + "Data/branches.json"; 
    var dataAsText = File.ReadAllText(dataSourcePath); 
    if (string.IsNullOrEmpty(dataAsText)) return result; 
    var branchList = JsonConvert.DeserializeObject<List<Branch>>(dataAsText); 
    result = AutoMapper.Mapper.Map<List<BranchRM>>(branchList); 
    return result; 
} 
+0

你試過了嗎?通過'Nuget'重新安裝'Newtonsoft.Json'? – tchelidze

+0

是通過執行'更新包Newtonsoft.Json -Reinstall',仍然沒有工作。 – Ciwan

+0

您可以直接添加對'Newtonsoft.Json.dll'的引用,而不需要'Nuget'。它位於'Packages'文件夾下的'Solution'目錄下。 – tchelidze

回答

5

我被定影一些舊代碼在我的Windows Phone 8解決方案之一,並想到更新NuGet包,並迎接相同的問題。

來自StivOstenberg here的評論幫助我解決了這個問題。

這是我做過什麼:

  1. 刪除了NuGet包。只需點擊NuGet管理器中的「卸載」即可。 請確保將其從解決方案中的每個項目中分別移除
  2. 清潔解決方案。重建解決方案。
  3. 現在,從整個解決方案中刪除使用語句!可以使用Newtonsoft.Json在'Entire Solution'上快速查找並替換爲
  4. 重複步驟2.(忽略錯誤)
  5. 從NuGet管理器& build(Ctrl + Shift + B)再次添加包。
  6. 最後(差不多),對於每一個錯誤顯示,去特定頁面和再次添加引用
  7. 重複步驟2並運行。

可能有一些冗餘的步驟,但這正是我所做的,它的工作。希望它也能幫助你。

0

確保在父組件中有沒有衝突版本的Newtonsoft!

在一個子程序集中,我想使用Newtonsoft.Json.8.0.3。

那麼StartUp項目是一個MVC5的Web應用程序。在那裏我使用了對Newtonsoft.Json.8.0.2有依賴性的BundleTransformer.Less.X.X.X。 升級 NewtonSoft.Json到8.0.3(現在都是同一版本)爲我解決了它。

相關問題