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

未安装Visual Studio环境下System.Text.Json无法加载问题求助

问题根因

你遇到的报错本质是版本不匹配 + 依赖缺失:

  • 你的项目目标框架是 netcoreapp3.1,该框架自带的System.Text.Json版本为3.x系列
  • 你引用的5.0.0版本 Microsoft.Extensions.Configuration.Json 依赖System.Text.Json 5.0.0.0,你显式安装5.0.2版本后没有配置绑定重定向,程序运行时依旧会尝试加载5.0.0.0版本
  • 安装Visual Studio时会自动在全局NuGet包缓存中添加各版本的常用库,此时程序可以从全局缓存找到对应依赖;卸载VS后全局缓存对应文件被清除,就会出现加载失败的报错

解决方案

方案1:添加绑定重定向 + 全量输出依赖

这个方案不需要修改现有包版本,操作如下:

  1. 在项目根目录新增(或修改已有的)app.config文件,添加如下绑定重定向规则,将所有System.Text.Json的版本请求指向你实际引用的5.0.2版本:
<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-5.0.2.0" newVersion="5.0.2.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>
  1. 打开你的.csproj文件,在PropertyGroup节点中添加以下两个配置,让编译时自动生成绑定重定向,并且把所有NuGet依赖的DLL都复制到输出目录:
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
  1. 重新编译项目,部署时将输出目录下的所有文件全部拷贝到目标设备,不要只单独拷贝你自己的业务DLL。

方案2:对齐包版本与目标框架

如果你不想做额外的配置,可以将所有Microsoft.Extensions开头的NuGet包版本降级到3.1.x版本,和你项目的.NET Core 3.1目标框架保持一致,天然不存在版本冲突问题,不需要配置绑定重定向。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 20:06:07