Исключение при использовании SQLite в приложении WinRT
Я создаю приложение для Windows 8, и теперь я хочу использовать SQLite для этого приложения. Я установилSQLite for Windows Runtime
через менеджер расширений Visual Studio 2013, и я добавилsqlite-net
в мой проект через NuGet.
Я пытаюсь создать базу данных в моем app.xaml.csOnLaunched
, но я получаю это исключение при запуске проекта:
Невозможно загрузить DLL 'sqlite3': указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)
Это очень странно, потому что нет ошибки при компиляции. Во всяком случае, я думаю, что он пытается сказать мне, что мне нужно сослаться на дополнительную DLL:sqlite3.dll
, но это не работает. В моей файловой системе 6 разных DLL: отладочная и выпускная версии ARM, x64 и x86. Я попытался добавить версию релиза x86 в свой проект, но в результате получилось следующее исключение:
Не удалось добавить ссылку на «C: \ Users \ Leon \ Documents \ Visual Studio 2013 \ Projects \ Googalytics \ packages \ SQLite \ x86 \ sqlite3.dll». Пожалуйста, убедитесь, что файл доступен, и что это допустимая сборка или COM-компонент.
Очень печально, что документация для sqlite-net отстой, она очень устарела (примеры даже больше не работают), она очень неполная и о ручном добавлении DLL также не упоминается. Итак, у меня есть 2 вопроса:
Как мне исправить эту конкретную проблему?Где я могу найти актуальную документацию для sqlite-net?Изменить: код, который я использую для создания БД:
private void InitializeDatabase()
{
var db = new SQLiteConnection("Googalytics");
db.CreateTable<Account>();
db.CreateTable<WebProperty>();
db.CreateTable<Profile>();
}
Я называю этот метод отсюда:
InitializeDatabase();
if (rootFrame.Content == null)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
if (!rootFrame.Navigate(typeof(MainPage), args.Arguments))
{
throw new Exception("Failed to create initial page");
}
}
// Ensure the current window is active
Window.Current.Activate();
edit2: еще немного информации о моей настройке:
Visual Studio 2013 RCWindows 8.1 RTMSQLite для Windows Runtime 3.8.0.2sqlite-net 1.0.7