admin管理员组

文章数量:1644511

本问题已得到解决,请看以下小结:

关于《Newtonsoft.Json版本不兼容的问题》的解决方案

记录备注
报错时间2024年
报错版本VS2022
报错复现列表点击查询时报错
报错描述未能加载文件或程序集“Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”
报错截图-
报错原因

可能原因一:版本不兼容,引用的包版本过低,旧接口不满足新功能。

可能原因二:配置文件例如Web.config  类库对应的.csproject,指定了必须引用某版本的dll。

解决步骤

方法一,Web.Config中加:
 

  <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.0.0" newVersion="13.0.0.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

方法二,没有web.config,在你调试所在的.cs文件对应路径的类库的工程文件(.csproj)中加:

<PackageReference Include="Newtonsoft.Json" Version="13.0.0.0" />

方案三:对应版本dll覆盖

你的C# NuGet 包被安装在全局缓存目录:
 

C:\Users\username\.nuget\packages\newtonsoft.json\13.0.1\lib\net45

我们在本地缓存目录中找到对应版本的nuget包(本例是13.0.0.0的Newtonsoft.Json)

然后黏贴到你项目的bin\debug目录下保存dll的地方,这样你debug的时候就不会报错了

实行这三种方案后,重新点击启动VS2022即可解决问题

效果图
小结

1.解决思路就两个:要么改dll,要么改配置文件。

2.方法:修改config文件、修改工程文件、找对应版本dll覆盖。

 

 (本文完,如有您具备更好方案,恳请您在评论区指出!谢谢。)

本文标签: 加载文件程序jsonVersion