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

Windows控制台OpenAPI应用中Newtonsoft.Json引发文件未找到异常的原因?

解决Newtonsoft.Json版本不匹配导致的FileNotFoundException问题

针对你遇到的Windows控制台OpenAPI应用附加进程时抛出System.IO.FileNotFoundException(找不到Newtonsoft.Json 13.0.0.0,但已安装13.0.3.0)的问题,可通过以下方式解决:

1. 添加程序集绑定重定向

通过配置让CLR自动将对旧版本的请求映射到已安装的新版本。在控制台应用的App.config文件中添加以下配置:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-13.0.3.0" newVersion="13.0.3.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

该配置会将所有对0.0.0.0至13.0.3.0版本的Newtonsoft.Json请求,重定向到你当前安装的13.0.3.0版本。

2. 安装指定版本的Newtonsoft.Json

如果不需要兼容新版本,可直接安装13.0.0.0版本的NuGet包:

  • 在NuGet包管理器控制台执行命令:
    Install-Package Newtonsoft.Json -Version 13.0.0
    
  • 或在Visual Studio的NuGet包管理器界面中搜索Newtonsoft.Json,选择版本13.0.0进行安装。

3. 确认依赖文件已复制到输出目录

检查应用输出目录(默认路径如bin\Debug\netX或bin\Release\netX),确认Newtonsoft.Json.dll文件存在。若不存在:

  1. 在项目引用列表中找到Newtonsoft.Json
  2. 右键选择“属性”,将“复制本地”设置为True

关于Azure App Service无问题的说明

Azure App Service中的ASP.NET应用默认会自动处理程序集绑定重定向,且部署过程中NuGet依赖会被正确复制到部署目录,加上云端运行时环境对版本兼容性的处理更宽松,因此不会出现该异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 05:50:13