本问题已得到解决,请看以下小结:
关于《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:\Users\username\.nuget\packages\newtonsoft.json\13.0.1\lib\net45 实行这三种方案后,重新点击启动VS2022即可解决问题 | |
| 效果图 | | |
| 小结 | 1.解决思路就两个:要么改dll,要么改配置文件。 2.方法:修改config文件、修改工程文件、找对应版本dll覆盖。 | |
(本文完,如有您具备更好方案,恳请您在评论区指出!谢谢。)