无法加载DLL' sqlite3'在SQLite Net Platform WinRT中

时间:2015-06-25 06:27:47

标签: c# sqlite windows-runtime

我正在使用Xamarin.Forms开发本机应用程序。但我现在面临的问题与Xamarin无关。我通过

添加了新的Windows Phone项目

right-click > Add > New Project -> Windows Phone Apps -> Blank App(Windows Phone).

在我在Visual Studio premium 2013中的现有Xamarin项目中。我使用sqlitenet pcl进行数据库连接。我的项目中有以下代码。

public ISQLitePlatform CreateSqlitePlatformInterface()
        {
            return new SQLitePlatformWinRT();
        }

当它在行上面执行时,它会抛出异常

An exception of type 'System.DllNotFoundException' occurred in SQLite.Net.Platform.WinRT.DLL but was not handled in user code

Additional information: Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

这已被问过很多次了,我尝试了所有建议的解决方案,但我仍然无法修复它。

我的Packages.config

 <package id="SQLite.Net-PCL" version="3.0.5" targetFramework="wpa81" />
  <package id="Sqlite-Winrt" version="3.8.7.1" targetFramework="wpa81" />
  <package id="Xamarin.Forms" version="1.4.2.6359" targetFramework="wpa81" />

以上是我从Nuget下载的软件包。我错过了什么吗?我还需要添加什么?

我也试过了:

  1. Sqlite下载 sqlite-winrt81-3081002.vsix 下载 页。
  2. 从x86复制sqlite3.dll。
  3. 尝试在我的 bin 中粘贴它 文件夹以及我的项目 root 并将其内容更改为 总是复制。 (ref: https://stackoverflow.com/questions/4744293/unable-to-load-dll-sqlite3-the-specified-module-could-not-be-found-exceptio
  4. 我的项目定位 x86 而不是任何CPU
  5. 尝试了以下建议解决方案:Sol1Sol2

    我的项目参考:

    enter image description here

2 个答案:

答案 0 :(得分:13)

安装SQLite Visual Studio扩展程序后,需要在Windows / Extensions下的SQLite for Windows Runtime参考管理器中添加引用。

Like this.

答案 1 :(得分:10)

在2016年3月更新到Windows 10和Visual Studio 2015之后,我遇到了这种错误的不同风格:我的应用程序在部署到我的桌面时运行正常,但崩溃了System.DllNotFoundException(“无法加载DLL&#39 ; sqlite3&#39;&#34;)部署到我的平板电脑时(即使在使用最新更新更新平板电脑操作系统后)。所以我解决问题的步骤如下:

  1. 卸载名为“SQLite for Universal App Platform”的VS扩展程序(v3.10.2)
  2. 从我的项目中删除了对此扩展程序的引用
  3. 再次安装了扩展程序 - 除了这次它在在线扩展程序列表中显示为“SQLite for Universal Windows Platform”(v3.12.1)
  4. 在我的项目中添加了对此扩展程序的引用
  5. (这是我之前不需要做的重要部分):添加了对“通用Windows平台应用程序的Visual C ++ 2015运行时”(v14.0)扩展的引用
  6. 直到最后一步它才真正解决问题。