无法加载文件或程序集'Newtonsoft.Json,版本 = 10.0.0.0' - 但是 bin 文件夹中存在二进制文件

Posted

技术标签:

【中文标题】无法加载文件或程序集\'Newtonsoft.Json,版本 = 10.0.0.0\' - 但是 bin 文件夹中存在二进制文件【英文标题】:Could not load file or assembly 'Newtonsoft.Json, Version=10.0.0.0' - However binary exists in bin folder无法加载文件或程序集'Newtonsoft.Json,版本 = 10.0.0.0' - 但是 bin 文件夹中存在二进制文件 【发布时间】:2017-10-08 02:26:25 【问题描述】:

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

我要做的就是: 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" />

我尝试过的事情:

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

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

有什么想法吗?

【问题讨论】:

“但是,在我的项目中,我引用的是版本 10.0.0.0。更具体地说,是 10.0.2.0。”那不是“更具体” - 那是“不同”。听起来 something 仍然在期待 10.0.0.0,并且因为找到 10.0.2.0 而失败。你能把你的程序集绑定重定向放在问题中吗? 闻起来像 DLL 地狱问题。您是否尝试过确保所有代码都引用同一个库,并且您没有在引用的代码中使用其他版本? 我遇到了这个问题,我不得不在 npm 控制台 update-package Newtonsoft.Json -reinstall 中运行这个命令 在 VS 中,在项目引用中 Newtonsoft.Json 程序集的属性窗口中,显示了编译器正在使用的 DLL 的路径。如果将此路径中的 DLL 复制到 bin 文件夹或发布可执行文件的任何位置(覆盖可能已经存在的任何 DLL),会发生什么情况。那么错误是否仍然出现? 您似乎忘记添加在调查程序集加载异常时收集的融合日志信息 - 请确保在 edit 发布并包含该日志。 【参考方案1】:

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

source

【讨论】:

【参考方案2】:

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

似乎该网站胜出,因此该网站安装了该版本,而引用的程序集未能加载“它的”版本。

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

【讨论】:

以上是关于无法加载文件或程序集'Newtonsoft.Json,版本 = 10.0.0.0' - 但是 bin 文件夹中存在二进制文件的主要内容,如果未能解决你的问题,请参考以下文章

无法加载文件或程序集 'PayPalAdaptivePaymentsSDK,版本 = 2.12.117.0

无法加载文件或程序集。找到的程序集的清单定义与程序集引用不匹配

无法加载文件或程序集'netstandard,版本 = 2.0.0.0

无法加载文件或程序集 此处的程序集名称 或其依赖项之一。访问被拒绝

无法加载文件或程序集或其依赖项之一

寻找解决策略:无法加载文件或程序集[重复]