我使用Visual Studio 2015 SP2。我尝试使用sqlite创建Windows Universal应用程序。我为Unversal Windows平台和SQLite.Net-PCl添加了SQLite。这是我的简单代码
var conn = new SQLiteConnection(
new SQLitePlatformWinRT(),
Path.Combine(ApplicationData.Current.LocalFolder.Path, "Storage.sqlite"));
它适用于桌面。但它不适用于移动设备(在设备和模拟器中)。我得到这个异常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()
我试试这个method。我重新安装SQLite for Unversal Windows Platforms扩展和SQLite.Net-PCl。我创建了明确的项目。但它对我不起作用。
答案 0 :(得分:5)
确保您当前添加2个参考
它仍然有效!
答案 1 :(得分:0)
在聊天中解决。
OP使用Nuget控制台解决了它:
安装包SQLite.WinRT.UAP
并使用“添加链接” - >“扩展程序” - > SQLite for Windows Runtime
建议
很酷,但建议你使用Extension SQLite for Universal App Platform,因为它包含大部分设备系列和SQLite.WinRT.UAP是不需要的。
在当前的回购中,我删除了Winrt的引用并使用这些扩展它的工作正常。只需检查系统上安装的Sqlite vsix软件包是否正确。