我在使用Dapper以及Dapper.Contrib对本地sqlite的文件访问的时候
涉及调用两个dll文件
SQLite.Interop.dll
System.Data.SQLite.dll
上述两个dll有所关联 其版本在nuget下载sqlite库时是同步的;
两个文件的版本需要又一定要求
若出现 SQLite.Interop.dll 低于 System.Data.SQLite.dll 版本的时候就有报错:
“连接数据库 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
通常是由于dapper.contrib社区维护的C++代码版本代差导致的内存异步访问问题;
故
建议 System.Data.SQLite.dll 使用1.0.109.0版本
同时 SQLite.Interop.dll 使用1.0.115.5版本
由此可避免上述C++库内部的问题;