无法加载DLL的'sqlite3' - 适用于Windows Universal Mobile

时间:2016-04-01 07:47:55

标签: sqlite visual-studio-2015 windows-phone win-universal-app sqlite-net

我使用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。我创建了明确的项目。但它对我不起作用。

2 个答案:

答案 0 :(得分:5)

确保您当前添加2个参考

  1. Sqlite for Universal Windows Platfrom
  2. Visual C ++ Runtime 2015 for Unversal Windows Platfrom
  3. 它仍然有效!

答案 1 :(得分:0)

在聊天中解决。
OP使用Nuget控制台解决了它: 安装包SQLite.WinRT.UAP 并使用“添加链接” - >“扩展程序” - > SQLite for Windows Runtime
建议
很酷,但建议你使用Extension SQLite for Universal App Platform,因为它包含大部分设备系列和SQLite.WinRT.UAP是不需要的。 在当前的回购中,我删除了Winrt的引用并使用这些扩展它的工作正常。只需检查系统上安装的Sqlite vsix软件包是否正确。