我需要在x64窗口下创建和访问一个spacespaceite扩展的SQLite数据库。
我已经下载了最新版本1.0.92.0,称为System.Data.SQLite的sqlite-netFx45-static-binary-bundle-x64-2012-1.0.92.0.zip
。它是从我的Visual Studio(2012)项目中引用的,它本身似乎还可以正常工作。
我也有最新的预编译的x64 spatiaLite版本4.1.1,称为spacespaceite-4.1.1-DLL-win-amd64.zip
来自spacespaceite的所有dll都存在于执行目录中。
当我尝试加载扩展程序时:
using (var conn = new SQLiteConnection("Data Source=\"" + _sqLiteFullName + "\""))
{
conn.Open();
conn.EnableExtensions(true);
conn.LoadExtension("libspatialite-4.dll");
...
}
我在
LoadExtension()
行上收到一个 AccessViolationException (尝试读取 protected 内存。这通常表明其他内存已损坏)。我注意到当使用PE Deconstructor(确定dll/exe的bitnewss的软件)查看时,它说我的System.Data.SQLite.dll副本(来自x64软件包)实际上是32位。那是问题吗?
我该如何补救?
其他人如何在x64上获得spatiaLite的支持?
最佳答案
实际上,问题可能出在我自己花了一个星期试图解决相同问题但没有成功的autumnite-4.dll中。看来spacespaceite-4.dll中存在问题(我是说这是从gaia-sins(官方spaceiteite网站)下载的)
您可以尝试从来源(如噩梦(:))构建Spatialite,也可以尝试寻找另一种.dll。第二种选择对我有所帮助。
顺便说一句,使用Spatialite扩展名需要几个.dll:
希望这对
关于c# - 获得适用于x64 C#的SpatiaLite + SQLite系统,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22667981/