开发者社区> 吞吞吐吐的> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

SQLite异常:unsafenativemethods.sqlite3_open_interop

简介:
+关注继续查看

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

2009111314220124.jpg

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 fromhttp://www.sqlite.org,我在asp.net 中测试可以使用,但在.NET CF中异常。看来这个ManagedOnly应该不支持arm平台。

 

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

 

本文转自chy710博客园博客,原文链接:http://www.cnblogs.com/chy710/archive/2009/11/13/1602505.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
sqlite3——sqlite3应用相关函数
sqlite3——sqlite3应用相关函数
0 0
C#操作SQLite
C# SQLite 地址: System.Data.Sqlite入手。。。 首先import/using:  代码using System.Data.SQLite;  Connection和Command: 代码private SQLiteConnection conn;             ...
836 0
SQLite函数大全
abs(X) 返回参数X的绝对值 coalesce(X,Y,……) 返回第一个非空参数的副本。若所有的参数均为NULL,返回NULL。至少2个参数。 ifnull(X,Y) 返回第一个非空参数的副本。
682 0
SQLite Hello Code
1: //------------------------------------------------------------------------------ 2: // Copyright (c) 2012 eryar All Rights Reserved.
506 0
SQLite操作
创建有主键的表: create table test (pkey varchar(16) primary key, value varchar(10)); 创建有复合(即key由多个字段联合组成)主键的表: create table test (pkey1 varchar(16) ...
387 0
SQLite部署-无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块
 近期刚使用SQLite,主要引用的是System.Data.SQLite.dll这个dll,在部署到测试环境时报无法加载 DLL“SQLite.Interop.dll”: 找不到指定的模块。 (异常来自 HRESULT:0x8007007E)。
2889 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载