初次使用SQLite遇到了莫名其妙的问题:
未能加载文件或程序集“System.Data.SQLite, Version=1.0.92.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确的程序。
编译是通过的,一运行就报这个错。
我是从官网下载的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的)。
所以设置目标平台为“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