3

Ich habe Visual Studio 2015 mit SP2 verwendet. Ich versuche Windows Universal App mit SQLite erstellt. Ich habe SQLite für Unversal Windows Platforms und SQLite.Net-PCl hinzugefügt. Es ist mein einfacher CodeDLL 'sqlite3' kann nicht geladen werden - für Windows Universal Mobile

var conn = new SQLiteConnection(
      new SQLitePlatformWinRT(), 
      Path.Combine(ApplicationData.Current.LocalFolder.Path, "Storage.sqlite")); 

Es funktioniert für den Desktop. Aber es funktioniert nicht für Mobilgeräte (in Gerät und Emulator). Ich erhalte diese Ausnahme System.DllNotFoundException:

HResult=-2146233052 
    Message=Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E) 
Source=SQLite.Net.Platform.WinRT 
TypeName="" 
StackTrace: 
    at SQLite.Net.Platform.WinRT.SQLite3.SetDirectory(UInt32 directoryType, String directoryPath) 
    at SQLite.Net.Platform.WinRT.SQLiteApiWinRT..ctor() 
    at SQLite.Net.Platform.WinRT.SQLitePlatformWinRT..ctor() 
    at AppDbTest.MainPage.DbConnection() 
    at AppDbTest.MainPage..ctor() 
    at AppDbTest.AppDbTest_XamlTypeInfo.XamlTypeInfoProvider.Activate_0_MainPage() 
    at AppDbTest.AppDbTest_XamlTypeInfo.XamlUserType.ActivateInstance() 

ich versuchen, diese method. Ich installiere SQLite für Unversal Windows Platforms Erweiterung und SQLite.Net-PCl neu. Ich habe ein klares Projekt erstellt. Aber es funktioniert nicht für mich. Ich verbringe drei Stunden, bitte hilf mir :).

+0

Haben Sie versucht, Ihre nugget-Pakete für die neue sqlite-Version zu aktualisieren? – Jerin

+0

Ich benutze SQLite.Net-PCL 3.1.1 und SQLite.Net.Async-PCL 3.1.1. Es ist die letzte Version. – FetFrumos

+0

Für SQLite.Net.Async-PCL verwende ich 3.0.5, da 3.1.1 einige Bugs auftut, in meinem Projekt funktioniert mein Projekt auf allen drei Desktops, Mobilgeräten und Emulatoren einwandfrei. Tritt es nur im aktuellen Projekt oder in jedem anderen Projekt auf? – Jerin

Antwort

10

Ich füge einen Verweis auf Visual C++ 2015 Runtime für Universal Windows Platform Apps hinzu. Es ist Arbeit für mich. Ich habe SQLite für die Universal Windows Platform verwendet.

+0

Danke, das funktionierte für mich auch. –

0

Gelöst im Chat.
OP löste es Nuget Konsole: Install-Package SQLite.WinRT.UAP und "Link hinzufügen" verwendet -> "Erweiterungen" -> SQLite für Windows Runtime
Vorschlag
Kühl, aber würde vorschlagen, Sie Erweiterung SQLite verwenden für Universal App Platform, da es die meisten Gerätefamilien umschließt und SQLite.WinRT.UAP nicht benötigt wird. Wie im aktuellen Repo habe ich Referenzen für Winrt entfernt und mit diesen Erweiterungen funktioniert es gut. Überprüfen Sie, ob das installierte Sqlite vsix-Paket das richtige auf Ihrem System ist.

+0

Es tut mir leid, aber es ist nicht für mich arbeiten :(. "SQLite für Universal App Platform" es ist der alte Name "SQLite für Universal Windows Platform"? – FetFrumos

+0

oh yeah, Sie haben Recht, von diesem [tutorial] (http: //igrali.com/2015/05/01/using-sqlite-in-windows-10-universal-apps/) Sie können sehen, dass die frühere "SQLite für Universal App Platform" (sogar ich habe diese installiert), die sie haben geändert zu 'SQLite für Universal Windows Platform', aber damit es im mobilen Emulator nicht funktioniert, bedeutet es einen Fehler von SQLite Ende. Jetzt deshalb WinRT sqlite arbeitete, während das UWP nicht tat. – Jerin

5

Vergewissern Sie sich, dass Sie zwei Referenzen Strom hinzufügen

  1. Sqlite für Universal Windows-Platfrom
  2. Visual C++ Runtime 2015 für Windows-Unversal Platfrom

Es ist immer noch funktioniert!

+0

Dieses sollte Seien Sie die erwartete Antwort. Wenn Sie die Option "Sqlite for Universal Windows Platform" nicht sehen können, installieren Sie den VSIX von Sqlite.org –