我正在开发一个使用Mono.Data.Sqlite dll的sqlite项目,这样我的程序就可以在Windows和单声道上实现跨平台了。程序成功构建没有任何问题,但是当我运行程序时,它尝试建立与数据库的连接。
然而,我收到错误
无法加载DLL的'sqlite3':找不到指定的模块。 (HRESULT异常:0x8007007E)
以下是我如何连接到SQLite数据库的代码
public SqliteConnection conn = null;
private static string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
private static string exeName = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;
public static string DATABASE_PATH = path + string.Format("\\BoardiesITSolutions\\{0}\\{0}.db", exeName);
public ConnectSQLiteDatabase(string dbPassword)
{
try
{
Console.WriteLine("DB Password: {0}", Encryption.decrypt(dbPassword));
conn = new SqliteConnection("Data Source="+DATABASE_PATH+";Password="+Encryption.decrypt(dbPassword));
conn.Open();
}
catch (SqliteException ex)
{
Console.WriteLine("Open Error: " + ex.Message);
}
}
感谢您提供的任何帮助。
答案 0 :(得分:0)
我设法解决了这个问题。
我为Windows安装了预编译的二进制文件,并将该DLL导入到我的项目中,以便在Windows上正常工作。然后下载源代码并从链接http://system.data.sqlite.org/index.html/doc/trunk/www/build.wiki#mono手动构建单声道DLL并将其安装在Linux服务器上,它现在在两个平台上都能正常工作。
答案 1 :(得分:-1)
尝试安装:
sudo apt-get install libsqlite3-dev