最近做一个winform项目,因为数据库用的表很少,所以用的是轻量级数据库sqlite。sqlite的优点很多,但是他要分两个版本,32位或者64位,不能同时兼容。
我遇到的问题是,我在开发端用的是.net4.5的开发版本的dll:
Precompiled Binaries for 64-bit Windows(.NET Framework 4.5)
我在开发端直接调用这个dll都是OK的,没有问题。但是我把程序部署到客户机上的时候,就会出现报错
Could not load file or assembly System.sqlite.dll or one of it's depedencies 无法找到模块
网上另外一个人zhu2695说的是缺少一个Visual C++ runtime library,这个我没试,我不知道我的客户机是不是这个原因。我的解决方法是在客户机安装相应的sqlite的安装程序,安装之后,就可以解决问题了,下面附上32位和64位的下载链接,直接安装就可以了。
32位:http://system.data.sqlite.org/downloads/1.0.96.0/sqlite-netFx45-setup-bundle-x86-2012-1.0.96.0.exe
64位:http://system.data.sqlite.org/downloads/1.0.96.0/sqlite-netFx45-setup-bundle-x64-2012-1.0.96.0.exe
要下载混合模式的安装文件,否则不能起作用。
我还想翻译一下sqlite官网.net版本下载的第一段话:
大体的意思是所有这页面的下载文件都没有包含“static”这个词,所以为了在目标机器上成功的执行你的程序,你需要安装合适的版本的Microsoft Visual C++ Runtime Library。同时应该注意到那些包含"setup"的安装包,已经包含了Microsoft Visual C++ Runtime Library的安装包。