无法加载文件或程序集“Newtonsoft.Json,Version=10.0.0.0” - 但是二进制文件存在于 bin 文件夹中

问题描述 投票:0回答:3

我试图在这里做一些非常简单的事情,并且我已经坚持了几个小时。我觉得我几乎用尽了所有选择。

我想做的就是:

JsonConvert.SerializeObject(model)

但是,产生的错误是:

抛出异常:mscorlib.dll 中的“System.IO.FileLoadException”

其他信息:无法加载文件或程序集“Newtonsoft.Json,Version=10.0.0.0,Culture=neutral,PublicKeyToken=982hs0cm1kd”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

但是,在我的项目中,我引用的是版本10.0.0.0。更具体地说,10.0.2.0。当我检查项目的 bin 文件夹时,我可以验证 10.0.2.0 dll 是否存在。在packages.config中,我有

<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net452" />

我尝试过的事情:

  1. 手动从项目中删除 bin/obj 文件夹并重建
  2. 手动修改 Web.Config 文件以确保绑定重定向中的版本正确。
  3. 将参考属性“特定版本”更新为 False
  4. 手动删除
    C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root
  5. 中的所有文件

我真的被困在这里,我可以看到这是一个常见问题,因为我发现了很多不同的方法来解决它,但到目前为止没有一个有效。

有什么想法吗?

c# .net json reference dependencies
3个回答
3
投票

在包管理器控制台中执行:Update-Package –reinstall Newtonsoft.Json。

来源


2
投票

刚刚遇到了类似的问题。我的网站和引用的项目(我假设组装相同)都需要 Newtonsoft.Json,但它们的版本略有不同。

似乎该网站胜出,因此该网站安装了该版本,并且引用的程序集无法加载“它的”版本。

确保所有项目都具有相同的版本(管理解决方案的 NuGet 包)并且可以正常工作。


0
投票

通过 Nuget manger 将 Newtonsoft.Json 10.0.3 添加到启动项目。

© www.soinside.com 2019 - 2024. All rights reserved.