Ausnahme bei Verwendung von SQLite in der WinRT-App
Ich erstelle eine Windows 8-App und möchte jetzt SQLite für diese App verwenden. ich installierteSQLite for Windows Runtime
über den Visual Studio 2013 Extension Manager, und ich fügte hinzusqlite-net
zu meinem Projekt über NuGet.
Ich versuche, eine Datenbank in meiner app.xaml.cs zu erstellenOnLaunched
Aber ich bekomme diese Ausnahme, wenn ich das Projekt starte:
DLL 'sqlite3' kann nicht geladen werden: Das angegebene Modul wurde nicht gefunden. (Ausnahme von HRESULT: 0x8007007E)
Dies ist sehr merkwürdig, da beim Kompilieren kein Fehler auftritt. Wie auch immer, ich denke, es versucht mir zu sagen, dass ich auf eine zusätzliche DLL verweisen muss:sqlite3.dll
, aber das geht nicht. Mein Dateisystem enthält 6 verschiedene DLLs: Debug- und Release-Versionen von ARM, x64 und x86. Ich habe versucht, die x86-Release-Version zu meinem Projekt hinzuzufügen, dies führt jedoch zu der folgenden Ausnahme:
Ein Verweis auf "C: \ Benutzer \ Leon \ Dokumente \ Visual Studio 2013 \ Projects \ Googalytics \ packages \ SQLite \ x86 \ sqlite3.dll" konnte nicht hinzugefügt werden. Stellen Sie sicher, dass auf die Datei zugegriffen werden kann und dass es sich um eine gültige Assembly oder COM-Komponente handelt.
Es ist sehr traurig, dass die Dokumentation für sqlite-net nicht mehr funktioniert, sehr veraltet ist (Beispiele funktionieren nicht mehr), sehr unvollständig ist und es auch keine Erwähnung gibt, eine DLL manuell hinzuzufügen. Ich habe also 2 Fragen:
Wie behebe ich dieses Problem?Wo finde ich aktuelle Dokumentationen zu sqlite-net?Bearbeiten: Der Code, den ich zum Erstellen der Datenbank verwende, lautet:
private void InitializeDatabase()
{
var db = new SQLiteConnection("Googalytics");
db.CreateTable<Account>();
db.CreateTable<WebProperty>();
db.CreateTable<Profile>();
}
Ich rufe diese Methode von hier aus auf:
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: noch ein paar infos zu meinem setup:
Visual Studio 2013 RCWindows 8.1 RTMSQLite für Windows Runtime 3.8.0.2sqlite-net 1.0.7