2009-11-03 118 views
2

该站点http://sqlite.phxsoftware.com/讨论混合模式程序集和受管理版本的提供程序。他们都被命名为System.Data.SQLite.dll?我在Windows中安装了托管版本,它正在工作。据我所知,这意味着我还必须在本机上找到原生sqlite3.dll文件,对吧?关于System.Data.SQLite.dll的混淆

当我试图让我的程序集在Mono上的Linux上运行时,我得到一个EntryPointNotFoundException寻找sqlite3_open_v2。所以我下载了预编译的Linux共享库,没有来自http://www.sqlite.org/download.html的TCL绑定,并将它放在与其他程序集相同的文件夹中。但是这并没有改变任何东西。

http://www.mono-project.com/Interop_with_Native_Libraries的页面说Linux会查看我的LD_LIBRARY_PATH环境变量。所以我将其设置为包含'。',即当前目录。那也行不通。

因此,然后我将sqlite-3.6.19.so复制到sqlite-3.so,sqlite3.so和sqlite.so。仍然没有变化。

我错过了什么?

+0

请提供完整的错误消息,并且像这样运行程序: MONO_LOG_LEVEL =“调试” MONO_LOG_MASK =“DLL”单APP.EXE –

回答

1

而不是在Windows和Linux上使用System.Data.SQLite.dll,我决定在两边都使用Mono.Data.Sqlite.dll。

+0

我认为问题的根源是,它仍然拿起一个系统中其他地方的旧版SQLite。 – Fantius