在.NET CF(WM 6)中使用了System.Data.SQLite,程序在个别手机(WM6.1和6.5)上运行异常,异常提示为unsafenativemethods.sqlite3_open_interop方法。如果你使用的是早期版本的System.Data.SQLite,那么在WM6.1或高版本的手机上可能会出现此异常。

在System.Data.SQLite的Version History发现了这样的描述:

1.0.50.0 - June 27, 2008
Enhanced the mergebin utility to work around the strong name validation bug on the Compact Framework.  The old workaround kludged the DLL and caused WM6.1 to fail to load it.  This new solution is permanent and no longer kludges the DLL. 

我使用的是1.0.48版,这个版本包括了SQLite引擎和ADO.NET的封装。作者把它们合并到了一个dll文件中。这个dll同时支持native code或managed code调用。但在1.0.50版本的更新中,已经取消了这样的方式。 即ADO.NET provider for SQLite和SQLite.Interop分开单独提供。所以后续版本的System.Data.SQLite.dll文件仅是一个ADO.NET provider for SQLite,不包含SQLite的源码,而nativer的封装在SQLite.Interop.xxx.dll这样的文件中。System.Data.SQLite.dll使用时需要p/invoke SQLite.Interop.xxx.dll。

引用了新的程序集后,没有发现上面这个异常。

作者在后续的版本中提供了ManagedOnly的System.Data.SQLite.dll,使用时需要native sqlite3.dll or Linux shared library from http://www.sqlite.org,我在asp.net 中测试可以使用,但在.NET CF中异常。看来这个ManagedOnly应该不支持arm平台。

标签:Windows Mobile,.NET CF,SQLite,System.Data.SQLite
http://chy710.cnblogs.com

SQLite异常:unsafenativemethods.sqlite3_open_interop相关推荐

  1. SQLite异常 qAdmin: Cannot perform this operation on a closed dataset.

    SQLite异常 qAdmin: Cannot perform this operation on a closed dataset. 参考文章: (1)SQLite异常 qAdmin: Cannot ...

  2. 解决SQLite异常:library routine called out of sequence

    解决SQLite异常:library routine called out of sequence 参考文章: (1)解决SQLite异常:library routine called out of ...

  3. java druid sqlite_springboot整合druid抛出dbType not support : sqlite异常

    最近在搞springboot,将springboot和mybaits整合后没一点毛病,但想自己弄个sql监控,就准备使用阿里的druid来做连接池,毕竟是国产又是大厂出品,号称最牛X的连接池. 整合过 ...

  4. c# 未能加载文件或程序集mysql.data,SQLite的C#,.NET应用自适应32位/64位系统(未能加载文件或程序集“System.Data.SQLite.dll)...

    SQLite异常报错 其他信息: 未能加载文件或程序集"System.Data.SQLite, Version=1.0.103.0, Culture=neutral, PublicKeyTo ...

  5. Python系列-Django-Ninja

    Python系列-Django-Ninja 适用对象:有一定python和django基础,对此技术感兴趣,或者想快速尝试.实现效果的. 原则: 实用为主,效果为主 不重复造轮子,但应该知道其工作原理 ...

  6. 基于“树莓派+腾讯云”的在线甲醛监测系统

    导语 扔掉小瓶盖,腾讯云带你体验在线甲醛监测系统!本文详述腾讯云多产品组合设计和体验报告 之 "树莓派+腾讯云=在线甲醛监测系统".涉及腾讯云产品:API网关.无服务器云函数.云数 ...

  7. 无法加载 DLL“SQLite.Interop.DLL”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。...

    无法加载 DLL"SQLite.Interop.DLL": 找不到指定的模块. (异常来自 HRESULT:0x8007007E). 在项目里添加  现有项  把SQLite.In ...

  8. Petapoco使用SQLite的异常问题

    在DbProviderFactory 初始化时,报一个"System.Data.SQLite.SQLiteFactory"的类型初始值设定项引发异常. 解决:不光要引用System ...

  9. c# 无法加载DLL“SQLite.Interop.dll”,: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)

    问题 用到了SQLite,在我的项目环境下调试运行都是正常的,但是发布部署之后报错:无法加载DLL"SQLite.Interop.dll",: 找不到指定的模块. (异常来自 HR ...

  10. java sqlite 多线程并发_C#_C#解决SQlite并发异常问题的方法(使用读写锁),本文实例讲述了C#解决SQlite并 - phpStudy...

    C#解决SQlite并发异常问题的方法(使用读写锁) 本文实例讲述了C#解决SQlite并发异常问题的方法.分享给大家供大家参考,具体如下: 使用C#访问sqlite时,常会遇到多线程并发导致SQLI ...

最新文章

  1. BitmapFactory.Options.inSampleSize 的使用方法
  2. 如何在eclipse中安装git?
  3. 神策 FM | 我绝对想要那个 VS 我可能想要那个
  4. fancy approach for making your code listed used for short essays, no need for listing in outline
  5. 基于Zabbix IPMI监控服务器硬件状况
  6. node-mysql中的连接池代码学习
  7. mysql自带加密解密字符集问题
  8. TSQL中实现ORACLE的多列IN 多列匹配。
  9. 简单的P2P电影下载加速,(类似迅雷下载电影P2P加速)
  10. E 帮 SeSe 的一篇示例
  11. Linux中访问tomcat方式,linux软连接_Linux中为Tomcat启用软链接的三种方式
  12. Spring源码解析:Spring Aware 原理解析
  13. 计算机硬盘应该什么格式化,硬盘应该格式化成哪种格式为好?
  14. python背离点的判断
  15. Nitux OS 折腾记录
  16. 自建nod32更新服务器,ESET NOD32 官方升级服务器地址
  17. 年终个人对公司所提的建议
  18. Web实时语音/视频聊天/文件传输
  19. Office---Excel操作技巧使用正则表达式
  20. 软件算法一些学习总结

热门文章

  1. 鹏拍:软件行业上市十大关注问题
  2. 深度:余额宝技术架构及演进
  3. 阿里云郑晓:浅谈GPU虚拟化技术(第二章)
  4. 【故障分析】基于matlab ICA故障监测【含Matlab源码 1590期】
  5. 技术专家(ai/大数据)_``我们淹没在数据中'':在专家和AI时代如何思考自己
  6. ai驱动数据安全治理_利用AI驱动的自动协调器实时停止有毒信息
  7. Mac下Eclipse内置Tomcat端口被占用问题的解决办法
  8. python中__future__包
  9. emui内核支持kvm吗_EMUI和MIUI为什么不基于安卓linux内核不使用虚拟机直接用c++开发一些更流畅系统自带软件呢?...
  10. java 去掉字符串最后几个字符_java-删除字符串的最后两个字符