Newtonsoft.Json版本8.0.2无法加载文件或程序集错误

J86*_*J86 4 .net c# json .net-assembly

我正在尝试在Web API解决方案中解析类库中的JSON文件.它是一个普通的C#类库,而不是Portable类.

我已经尝试过这里提到的每一个答案,但它仍然不起作用!我一直得到同样的错误:

无法加载文件或程序集'Newtonsoft.Json,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 30ad4fe6b2a6aeed'或其中一个依赖项.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)":"Newtonsoft.Json,Version = 8.0.0.0,Culture = neutral,PublicKeyToken = 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;
}
Run Code Online (Sandbox Code Playgroud)

小智 5

我在我的一个Windows Phone 8解决方案中修复了一些旧代码,并考虑更新NuGet包,并遇到了同样的问题.

从StivOstenberg注释这里帮我解决这个问题.

这就是我做的:

  1. 删除了NuGet包.只需点击NuGet经理的"卸载"即可.确保单独从解决方案中的每个项目中删除它.
  2. 清洁解决方案 重建解决方案.
  3. 现在,从整个解决方案中删除using语句!可以快速查找并替换在"整个解决方案"上使用Newtonsoft.Json.
  4. 重复步骤2.(忽略错误)
  5. 再次从NuGet manager&build(Ctrl + Shift + B)添加包.
  6. 最后(几乎),对于显示的每个错误,转到特定页面并再次添加引用.
  7. 重复步骤2和运行.

可能有一些冗余的步骤,但这正是我所做的,并且它起作用了.希望它也能帮到你.