SQLite遇到的关于x64、x86问题

初次使用SQLite遇到了莫名其妙的问题:

未能加载文件或程序集“System.Data.SQLite, Version=1.0.92.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确的程序。

image

编译是通过的,一运行就报这个错。

我是从官网下载的dll,sqlite-netFx40-static-binary-bundle-x64-2010-1.0.92.0。(当前OS: windows 7 sp1)

后来在网上看了一些文章,sqlite for .net是区分32位和64位的。我下载的确实是64位的,怎么会出错呢?

我看了程序的生成的配置,发现了问题:当我设置目标平台为“any cpu”或者“x64”时就是OK的,但是设置为x86就会报错了(原来默认是x86的)。

image

所以设置目标平台为“any cpu”或者“x64”就OK了

参考:

[1] system.data.sqlite.dll官方下载页面

http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

[2] 关于sqlite数据库在使用过程中应该注意以下几点

http://www.cnblogs.com/Joans/archive/2012/04/26/2471121.html

概要:sqlite使用中遇到的32位的程序集部署在x64服务器的iis上报错,解决方法是设置应用程序池兼容win32

(在iis管理器,选中应用程序池-》对正在使用的应用程序池 点击 高级设置   -》启用32位应用程序 为 true.)

[3] System.Data.SQLite.dll不能编译成AnyCPU问题的解决方案,以及它跨x86和x64的使用方法。

http://www.cnblogs.com/yao2yao4/archive/2012/11/21/2780526.html

[3] C#操作Sqlite快速入门及相关工具收集

http://www.cnblogs.com/greatverve/archive/2011/04/28/sqlite-start.html

原文地址:https://www.cnblogs.com/liqipeng/p/3679557.html