WPF项目升级sqlite-net-pcl时遇到Library e_sqlite3 not found的问题解决办法记录

项目中为了方便的存储本地数据,使用了SQLite数据库作为数据存储,再设计时DB、models引用了sqlite-net-pcl,那么项目再升级sqlite-net-pc 1.7.335l版本后后,遇到了很奇怪的一个问题。

再执行初始化数据库时new SQLiteAsyncConnection(dbPath); 语句无法成功执行。提示Library e_sqlite3 not found。看到这个错误时开始观察并分析问题:

1、升级后启动程序目录下确实没有了e_sqlite3.dll,尝试拷贝了e_sqlite3 同样无法正常执行代码。

2、因为2个程序集同时使用了sqlite-net-pcl。怀疑是因为设计时把2个程序集同时引用sqlite-net-pcl导致的问题。

开始第一轮搜索百度和必应。并没有搜到能解决问题答案。

 

针对第一个问题尝试拷贝e_sqlite3.dll和百度和biying的结果都无法解决时,就开始尝试自己写DEMO复现并解决该问题。我把解决方案为了UI的应用程序、DB程序集、只有这2个工程,只包含初始化sqlite代码。并尝试在DB程序集安装sql-net-pcl。并进行升级操作,发现同样有问题。

 

然后尝试使用Github上的Sqlite上开源的代码,但是依然会出现这个BUG。issues中也寻找到了类似的问题。但是没有提供解决方案,最终在stack overflow上搜到了一个解决办法。

 

 

我尝试在启动的工程添加了sqlite-net-pcl。发现解决了这个问题。但是完全没有必要再启动的工程中添加sqlite-net-pcl,虽然解决了这个问题。但是再issues中提出了针对这个问题的疑问。如果后续作者有更新,我会把原因更新到博客中。

我创建了一个C#相关的交流群。用于分享学习资料和讨论问题。欢迎有兴趣的小伙伴:QQ群:542633085

posted @   杜文龙  阅读(1895)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示