我需要在x64窗口下創建並訪問空間擴展SQLite數據庫。獲取適用於x64的SpatiaLite + SQLite系統c#
我已經下載了System.Data.SQLite的最新版本1.0.92.0,叫做sqlite-netFx45-static-binary-bundle-x64-2012-1.0.92.0.zip
。它是從我的Visual Studio(2012)項目中引用的,並且似乎本身工作得很好。
我也有最新的預編譯的x64版本spatiaLite 4.1.1稱爲spatialite-4.1.1-DLL-win-amd64.zip 所有的spatialite的DLL是出現在執行目錄。
當我嘗試加載擴展:
using (var conn = new SQLiteConnection("Data Source=\"" + _sqLiteFullName + "\""))
{
conn.Open();
conn.EnableExtensions(true);
conn.LoadExtension("libspatialite-4.dll");
...
}
我得到一個AccessViolationException(嘗試讀取受保護的內存這通常是指示其他內存已損壞)在LoadExtension()
線。我注意到當用PE Deconstructor(確定dll/exe的bitnewss的軟件)看時,它說System.Data.SQLite.dll(來自x64包)的副本實際上是32位。這是問題嗎?
如何對此進行補救?
其他人如何讓spatiaLite在x64上工作?
這工作,但讓我在VS2017的錯誤。 –
所以我發現了這個問題。如果此代碼仍然無法運行,因爲mod_spatialite附帶了錯誤的libstdC++ _ 64-6.dll。在這裏工作。 http://blog.jrg.com.br/2016/04/25/Fixing-spatialite-loading-problem/ –