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

程序集安装失败(FileLoadException):ASP.NET项目Newtonsoft.Json绑定重定向问题求助

排查ASP.NET中Newtonsoft.Json FileLoadException的关键步骤

让我帮你一步步拆解这个问题,结合你的描述来看,核心矛盾点已经很明显了,咱们逐个解决:

1. 修复绑定重定向的版本不匹配问题

你当前的web.config绑定重定向里,newVersion设置为10.0.0.0,但你的项目实际依赖的是10.0.3版本——这直接导致CLR尝试加载10.0.0.0版本的程序集,可你的项目里根本没有这个版本,自然抛出FileLoadException。

修改web.config中的绑定重定向配置,把版本统一为你实际使用的10.0.3:

<dependentAssembly>
  <assemblyIdentity name="Newtonsoft.Json" culture="neutral" publicKeyToken="30ad4fe6b2a6aeed" />
  <bindingRedirect oldVersion="0.0.0.0-10.0.3.0" newVersion="10.0.3.0" />
</dependentAssembly>

2. 统一解决方案内类库的NuGet版本

你提到引用了同解决方案里的类库项目,一定要检查这些类库的Newtonsoft.Json版本:

  • 右键类库项目 → 「管理NuGet程序包」,查看它引用的Newtonsoft.Json版本
  • 如果类库用的是低于10.0.3的版本,会导致整个解决方案里出现多版本依赖,CLR无法确定加载哪个,进而触发异常
  • 建议把所有类库的Newtonsoft.Json都升级到10.0.3,和主项目保持一致

3. 彻底清理并重建项目

旧的编译缓存经常会搞事情,残留的旧版本程序集可能干扰加载:

  • 右键解决方案 → 「清理解决方案」
  • 手动删除每个项目下的bin和obj文件夹(比IDE清理更彻底)
  • 右键解决方案 → 「重建解决方案」

4. 用程序集绑定日志深挖根源(进阶操作)

如果前面的步骤都没解决问题,可以用官方工具定位具体加载失败的细节:

  • 打开命令提示符,运行fuslogvw.exe(这是.NET自带的程序集绑定日志查看器)
  • 在工具里设置「日志绑定失败」或者「日志所有绑定」
  • 重新启动你的ASP.NET项目,查看生成的日志,里面会详细记录CLR尝试加载哪个版本、从哪里加载,以及失败的具体原因

5. 确认NuGet包的恢复状态

有时候NuGet包可能没有正确下载到本地:

  • 右键解决方案 → 「还原NuGet包」
  • 检查项目根目录的packages.config(旧项目)或者*.csproj文件(SDK风格项目),确保Newtonsoft.Json的版本确实是10.0.3

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:15:15