无法加载 DLL 'e_sqlite3':找不到指定的模块

Pét*_*adi 6 windows sqlite xamarin sqlite-net xamarin.forms

我有一个 Xamarin Forms 解决方案。我添加了 sqlite-net-pcl 作为所有项目的参考。它在 Android 上运行良好,但在 Windows 8.1 和 Windows Phone 8.1 上崩溃。我有一个 IOS 项目,但我目前没有 OSX 来尝试它。

我在 Windows 项目中使用它来访问数据库:

using System.IO;
using SQLite;
using Xamarin.Forms;
using HelloXamarin.Windows;
using Windows.Storage;

[assembly: Dependency(typeof(SQLiteDb))]

namespace HelloXamarin.Windows
{
   public class SQLiteDb : ISQLiteDb
    {
        public SQLiteAsyncConnection GetConnection(string databaseName)
        {
            var documentsPath = ApplicationData.Current.LocalFolder.Path;
            var path = Path.Combine(documentsPath, databaseName);
            return new SQLiteAsyncConnection(path);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是我的参考资料:

参考

尝试访问数据库时出现此异常:

“SQLite.SQLiteConnection”的类型初始值设定项引发异常。

无法加载 DLL 'e_sqlite3':找不到指定的模块。(来自 HRESULT 的异常:0x8007007E)

  • 在 SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_win32_set_directory(UInt32 directoryType, String directoryPath)
  • 在 SQLitePCL.SQLite3Provider_e_sqlite3..ctor()
  • 在 SQLitePCL.Batteries_V2.Init() 在 SQLite.SQLiteConnection..cctor()

我不知道如何解决这个问题,请帮助我!

整个解决方案可在 GitHub 上找到:https : //github.com/apspot/HelloXamarin

小智 8

对我来说,它通过将e_sqlite3 包添加到可执行项目来工作


Ada*_*ley 1

您需要添加 SQLite 扩展。

  1. 转到工具 > 扩展和更新
  2. 转到 Online,然后搜索 SQLite。
  3. 下载适用于 Windows 运行时的 SQLite

在此输入图像描述

  1. 在您的 Windows 项目中,添加引用并确保添加扩展。

在此输入图像描述

还要从引用中删除 Microsoft.VCLibs。