Excepción al usar SQLite en la aplicación WinRT
Estoy creando una aplicación para Windows 8, y ahora quiero usar SQLite para esta aplicación. lo instaléSQLite for Windows Runtime
a través del administrador de extensiones de Visual Studio 2013, y agreguésqlite-net
a mi proyecto a través de NuGet.
Estoy tratando de crear una base de datos en mi app.xaml.csOnLaunched
, pero obtengo esta excepción cuando ejecuto el proyecto:
No se puede cargar la DLL 'sqlite3': No se pudo encontrar el módulo especificado. (Excepción de HRESULT: 0x8007007E)
Esto es muy extraño porque no hay error durante la compilación. De todos modos, creo que intenta decirme que necesito hacer referencia a una DLL adicional:sqlite3.dll
, pero eso no funciona. Tengo 6 DLL diferentes en mi sistema de archivos: tanto las versiones de depuración como las de lanzamiento de ARM, x64 y x86. Intenté agregar la versión de lanzamiento x86 a mi proyecto, pero eso resulta en esta excepción:
No se pudo agregar una referencia a 'C: \ Users \ Leon \ Documents \ Visual Studio 2013 \ Projects \ Googalytics \ packages \ SQLite \ x86 \ sqlite3.dll'. Asegúrese de que el archivo sea accesible y de que sea un ensamblaje válido o un componente COM.
Es muy triste que la documentación de sqlite-net apeste, está muy desactualizada (los ejemplos ya ni siquiera funcionan), está muy incompleta y tampoco se menciona la adición manual de una DLL. Así que tengo 2 preguntas:
¿Cómo soluciono este problema en particular?¿Dónde puedo encontrar documentación actualizada para sqlite-net?Editar: el código que utilizo para crear la base de datos es:
private void InitializeDatabase()
{
var db = new SQLiteConnection("Googalytics");
db.CreateTable<Account>();
db.CreateTable<WebProperty>();
db.CreateTable<Profile>();
}
Yo llamo a ese método desde aquí:
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: más información sobre mi configuración:
Visual Studio 2013 RCWindows 8.1 RTMSQLite para Windows Runtime 3.8.0.2sqlite-net 1.0.7