2016-01-13 88 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(现在都是同一版本)为我解决了它。

相关问题