You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将对象转换为HttpContent时运行报错:无法加载Newtonsoft.Json程序集

解决Newtonsoft.Json运行时加载失败问题

嘿,这问题我见太多了——就是Newtonsoft.Json的版本冲突搞的鬼!编译能过是因为编译时找到了对应引用,但运行时系统找不到要求的6.0.0.0版本,给你几个实用的解决办法:

  • 检查并统一NuGet引用版本
    右键你的项目→「管理NuGet程序包」,看看当前安装的Newtonsoft.Json版本是多少。如果不是6.0.0.0,你有两个选择:要么直接安装6.0.0.0版本(用NuGet搜索指定版本安装),要么用「程序集绑定重定向」让运行时用现有版本替代6.0.0.0。

  • 添加程序集绑定重定向(最推荐)
    打开项目的App.config或Web.config,在<configuration>节点内添加以下配置,把newVersion改成你实际安装的版本号(比如13.0.1.0):

    <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
          <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
          <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="你的实际版本号" />
        </dependentAssembly>
      </assemblyBinding>
    </runtime>
    

    这个配置会告诉CLR:不管请求哪个0到6.0.0.0之间的版本,都用你指定的新版本来替代。

  • 修复NuGet包安装异常
    如果怀疑是NuGet包没装到位,试试卸载后重新安装:

    # 先强制卸载
    Uninstall-Package Newtonsoft.Json -Force
    # 安装指定版本,比如6.0.0.0
    Install-Package Newtonsoft.Json -Version 6.0.0.0
    

    要是不确定版本,直接装最新稳定版就行,配合上面的绑定重定向一样能用。

  • 检查输出目录的DLL版本
    去项目编译后的bin文件夹里看看,Newtonsoft.Json.dll的版本是不是和你引用的一致。如果不一致,大概率是其他依赖项目引用了旧版本,导致复制到输出目录的是旧DLL——这时候要么统一所有项目的Newtonsoft.Json版本,要么用绑定重定向来覆盖。

另外说一句:你的代码逻辑(把JArray转成IEnumerable)本身是没问题的,问题完全出在程序集加载的版本匹配上,搞定版本问题就能正常运行啦!

内容的提问来源于stack exchange,提问作者Jyotsna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:33:38