2013-04-25 5 views
0

Я работаю над проектом, использующим sqlite, используя dll Mono.Data.Sqlite, чтобы моя программа была кросс-платформой для Windows и моно. Программа успешно строится без каких-либо проблем, но затем, когда я запускаю программу, и она пытается установить соединение с базой данных.Mono Sqlite3 - модуль sqlite3 не найден

Однако я получаю сообщение об ошибке

Не удается загрузить 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

Я думаю, что вы, вероятно, придется использовать Interop Windows (Win32 скомпилирован SQLite) библиотеки при запуске на Windows. Код .NET может быть кросс-платформой, но двоичный файл SQLite, вероятно, нет. Формат файла тот же, да, но двоичный исполняемый файл, нет. –

ответ

0

Мне удалось решить проблему.

Я установил предварительно скомпилированные двоичные файлы для Windows и импортировал эту DLL в свой проект, чтобы он отлично работал на окнах. Затем загрузите источник и вручную создайте DLL для моно из ссылки http://system.data.sqlite.org/index.html/doc/trunk/www/build.wiki#mono и установите это на сервере linux, и теперь он отлично работает на обеих платформах.

-1

Попробуйте установить:

sudo apt-get install libsqlite3-dev 
Смежные вопросы