如何清除错误“无法找到PInvoke DLL SQLite.interop.dll”

时间:2010-09-20 09:49:23

标签: sqlite windows-mobile

我正在开发Windows移动应用程序。我正在使用SQLlite数据库。我使用以下代码连接到此数据库,如下所示

                SQLiteConnection cn = new SQLiteConnection();
                SQLiteDataReader SQLiteDR;
                cn.ConnectionString = @"Data Source=F:\CompNetDB.db3";
                cn.Open();
                SQLiteCommand cmd = new SQLiteCommand();
                cmd.CommandText = "select * from CustomerInfo";
                cmd.CommandType = CommandType.Text;
                cmd.Connection = cn;
                SQLiteDR = cmd.ExecuteReader();

在上面的例子中,我收到错误“找不到PInvike DLL SQLite.interop.dll”。我已经从\ SQLite.NET \ bin \ compactframework这个文件夹中添加了DLL System.Data.SQLLite。这是我安装SQLite时默认安装的文件夹。在同一文件夹中有一个名为SQLlite.Interop.66.DLL的DLL文件。当我尝试添加对此dll的引用时,它给出了无法添加dll的错误。是两个dll SQLlite.Interop.dll& System.Interop.066.dll一样吗?在上面的代码中如何解决错误“找不到PInvoke.SQLite.Interop.dll”请问您能否判断我的代码中是否有错误或者我的应用程序中缺少某些内容?

2 个答案:

答案 0 :(得分:6)

互操作DLL是一个C DLL,它具有在System.Data.SQLIte中进行的P / Invoke调用的入口点。您无法添加对本机DLL的引用,您必须单独将其复制到设备。一种简单的方法是将其添加到项目中,将构建操作设置为“内容”,并将“复制到输出目录”设置为“如果更新则复制”。调试时,Studio会将该文件下载到设备中。

答案 1 :(得分:1)

从SQLite.Interop.xxx.DLL中删除 .xxx 。 复制SQLite.Interop.DLL和System.Data.SQLIte作为cake的答案。