初次使用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