【问题标题】:How to resolve this conflict of two JSON.net existing?如何解决现有的两个 JSON.net 的冲突?
【发布时间】:2014-02-07 20:46:27
【问题描述】:

我在我的解决方案中的所有项目中更新了 json.net,并在收到此错误后:

“Newtonsoft.Json.JsonConvert”类型存在于两者中 '\packages\Newtonsoft.Json.6.0.1\lib\net45\Newtonsoft.Json.dll' 和 'c:\Program Files (x86)\Microsoft Visual Studio 12.0\Blend\Newtonsoft.Json.dll

为什么它试图从 Blend 文件夹加载 json.net,我该如何解决这个问题?

谢谢。

【问题讨论】:

  • 删除重复的引用。
  • @SLaks 在我的项目中只被引用过一次。您是否建议我从文件系统中的一个位置删除它?
  • 没有。你在哪里得到这个错误?
  • 总是痛苦且难以诊断。您可能想利用this new feature
  • 在解决 bug 之前,您可以在 Blend 文件夹中重命名版本。

标签: c# json.net visual-studio-2013


【解决方案1】:

就我而言,问题在于我的项目中有两个对两个不同版本的 Newtonsoft.Json.dll 的引用。通过查看解决方案树视图中的引用,这一点并不明显:您必须检查 csproj 文件。

解决这个问题:

  1. 在 Visual Studio 中右键单击项目,然后选择“卸载项目”
  2. 在 MSBuild 文件中搜索对 Newtonsoft.Json 的引用
  3. 删除对旧版本库的引用
  4. 右键单击项目并重新加载它。

【讨论】:

  • 我现在有一个第三方 SDK DLL 在我的解决方案中导致此错误。它使用的是旧版本的 Newtonsoft.Json.JsonConvert - 我应该如何处理?我的代码已经建立了很长时间,并且对此有很多引用,不得不强制我的代码使用旧版本对我来说太可怕了。
  • 具体来说:'CSSNWebServiceSDK, Version=1.0.6005.12454, Culture=neutral, PublicKeyToken=21547a501d0bdb4b'和'Newtonsoft.Json, Version=8.0.0.0, Culture=neutral都存在'JsonConvert'类型, PublicKeyToken=30ad4fe6b2a6aeed' - 不幸的是,我的 csproj 中只有一个对 newtonsoft 的引用,我无法删除另一个 DLL :(
  • 帖子是 2014 年的,我是 2018 年,我们在 Visual Studio 上仍然存在这个问题。谢谢你。解决我的问题
  • Felipe Oriani,我在 2019 年 ;) 我通过编辑我的 .csproj 文件并删除了对 Newtonsoft 的旧引用解决了这个问题
  • 现在是 2020 年,我也遇到了同样的问题。我有一个引用版本 12 的项目,但在较大的解决方案中引用的一些来自 Microsoft 的 NuGet 包仍然引用 Newtonsoft 版本 6.0,并且当组合时出现此错误。如果我删除 Microsoft 软件包,它就会消失,但我无法构建更大的项目。目前还没有解决方案。
【解决方案2】:

就我而言,我只是使用了程序集的完全限定名称:

var obj = Newtonsoft.Json.JsonConvert...

(VS Community 2017 版本 15.7.5)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-24
    • 2017-12-03
    • 2012-02-18
    • 2015-11-26
    • 1970-01-01
    相关资源
    最近更新 更多