2009-11-03 119 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