Def*_*Day 10 c# database sqlite gis spatialite
我需要在x64窗口下创建和访问一个spaceite扩展的SQLite数据库.
我已经下载了所谓的最新版本1.0.92.0 sqlite-netFx45-static-binary-bundle-x64-2012-1.0.92.0.zip 的System.Data.SQLite.它是从我的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");
...
}
Run Code Online (Sandbox Code Playgroud)
我得到一个AccessViolationException(试图读取受保护的内存.这通常表明其他内存已损坏)LoadExtension().
我注意到使用PE Deconstructor(确定dll/exe的bitnewss的软件),它说我的System.Data.SQLite.dll(来自x64包)的副本实际上是32位.那是问题吗?
我该如何解决这个问题?
有没有其他人让spatiaLite在x64上工作?
实际上,问题可能出在spatialite-4.dll中,今年我花了一周时间试图解决同样的问题,但没有成功。看起来spatialite-4.dll中有问题(我的意思是从gaia-sins(官方spatialite站点)下载的这个)你可以尝试从源代码构建一个Spatialite(就像一场噩梦(:)或尝试寻找另一个构建 .dll。第二个选项帮助了我。顺便说一句,您需要使用 Spatialite 扩展名有几个 .dll:
| 归档时间: |
|
| 查看次数: |
5128 次 |
| 最近记录: |