在Liunx和Mono下使用System.Data.SQLite

用C#写了段后端SQLite代码,本来在win上测试都没问题,谁知道在我自己的Liunx服务器上连接数据库的时候却抛出异常。

印象中是报这个错:Unable to load DLL ‘SQLite.Interop.dll’

我咋一想不对啊,build程序的时候明明是有SQLite.Interop.dll的啊,然后上谷歌一查,原来是要自己在对于平台上编译这个库。


以下是我自己的中文翻译:

1.在liunx上先去下载System.Data.SQLite源码完整包传送门,注意是full source code。

2.然后解压到一个目录,下文中<source root>指该目录。

3.完成以下shell命令:
cd /Setup
chmod +x compile-interop-assembly-release.sh
./compile-interop-assembly-release.sh

等执行完了以后,你就可以在<source root>/bin/2013/Release/bin里面找到编译好的libSQLite.Interop.so的文件。

如遇到错误可能是没有安装c/c++编译工具,以Centos为例,运行下面shell命令:
yum install gcc-c++ make

然后把这个文件给上权限:

chmod -x/bin/2013/Release/bin/libSQLite.Interop.so

最后拷贝libSQLite.Interop.so到你C#程序的所在目录(而不是包含SQLite.Interop.dll的x64或x86子目录)。

4.再重新跑你的程序试试吧!


英文原文地址:http://blog.wezeku.com/2016/10/09/using-system-data-sqlite-under-linux-and-mono/

类别:

没有回应

发表评论