SqlSugar报错要求Newtonsoft.Json版本大于9.0.0.1解决方法

使用SqlSugar过程中有时候会遇到这个问题:
如果有版本兼容问题请先删除原有引用(注意:所有项目类库),全部重新从NUGET下载, 如果还不明白,请查看详细教程 http://www.codeisbug.com/Doc/8/1154
但是官方说明没有给出是什么“部分功能”用到了9.0版本以上的Json.Net,只给出了更新依赖的方法。由于我项目需要,必须要用低于9.0版本的怎么办?

官方给的代码中

//用来打印Sql方便你调式    
db.Aop.OnLogExecuting = (sql, pars) =>
            {
                Console.WriteLine(sql + "\r\n" + 
                db.Utilities.SerializeObject(pars.ToDictionary(it => it.ParameterName, it => it.Value)));
                Console.WriteLine();
            };

db.Utilities.SerializeObject(object) 这个方法里面会调用 DependencyManagement.TryJsonNet(object) ,往里会直接调用Newtonsoft.Json的 JsonConvert.SerializeObject(object) 。而源码中SqlSugar项目是直接引用的 9.0 的dll文件,所以你的项目里也要指定版本的dll才可以正常运行。
我个人的解决方法,目前在小项目中使用正常:

  • 上面aop的debug代码用自己的而不用官方给的,即可避免调用到 DependencyManagement.TryJsonNet(object) 方法;
  • 下载SqlSugar源码,Nuget卸载SqlSugar,引用源码项目,改源码的引用为你自己的Newtonsoft.Json.dll(与你项目的Newtonsoft版本一致即可)
posted @ 2020-07-02 15:51  pikqu  阅读(1448)  评论(0)    收藏  举报