Exceção ao usar o SQLite no aplicativo WinRT
Estou construindo um aplicativo do Windows 8 e agora quero usar o SQLite para esse aplicativo. Eu instaleiSQLite for Windows Runtime
através do gestor de extensão do Visual Studio 2013, e adicioneisqlite-net
para o meu projeto através do NuGet.
Estou tentando criar um banco de dados no meu app.xaml.csOnLaunched
, mas eu recebo essa exceção quando executo o projeto:
Não é possível carregar a DLL 'sqlite3': O módulo especificado não pôde ser encontrado. (Exceção de HRESULT: 0x8007007E)
Isso é muito estranho porque não há erro durante a compilação. Enfim, eu acho que ele tenta me dizer que eu preciso fazer referência a uma DLL adicional:sqlite3.dll
, mas isso não funciona. Eu tenho 6 DLLs diferentes no meu sistema de arquivos: ambas as versões de depuração e lançamento do ARM, x64 e x86. Eu tentei adicionar a versão de lançamento x86 ao meu projeto, mas isso resulta nesta exceção:
Não foi possível adicionar uma referência a 'C: \ Users \ Leon \ Documents \ Visual Studio 2013 \ Projects \ Googalytics \ packages \ SQLite \ x86 \ sqlite3.dll'. Por favor, certifique-se que o arquivo está acessível e que é um assembly válido ou um componente COM.
É muito triste que a documentação do sqlite-net seja uma droga, é muito desatualizada (os exemplos nem funcionam mais), é muito incompleta e não há menção de adicionar manualmente uma DLL também. Então eu tenho 2 perguntas:
Como faço para corrigir esse problema específico?Onde posso encontrar documentação atualizada para sqlite-net?Edit: o código que eu uso para criar o DB é:
private void InitializeDatabase()
{
var db = new SQLiteConnection("Googalytics");
db.CreateTable<Account>();
db.CreateTable<WebProperty>();
db.CreateTable<Profile>();
}
Eu chamo esse método daqui:
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: mais algumas informações sobre minha configuração:
Visual Studio 2013 RCWindows 8.1 RTMSQLite para o Tempo de Execução do Windows 3.8.0.2sqlite-net 1.0.7