【问题标题】:System.DllNotFoundException for sqlite3SQLite3 的 System.DllNotFoundException
【发布时间】:2018-06-01 16:52:11
【问题描述】:

我已经安装了 Microsoft.Data.Sqlite Nuget 版本 1,1,1 包(因为我有 Visual Studio 2015 并且它不支持 2.0.0)。在 x86 和 x64 中一切正常,但是当我将应用程序部署到我的手机时,问题出现在 arm 版本上,它会遇到以下异常

Microsoft.Data.Sqlite.dll 中出现“System.DllNotFoundException”类型的异常,但未在用户代码中处理

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

这是我的堆栈跟踪

   at Microsoft.Data.Sqlite.Interop.NativeMethods.Sqlite3_sqlite3.sqlite3_open_v2(IntPtr filename, Sqlite3Handle& ppDb, Int32 flags, IntPtr vfs)
   at Microsoft.Data.Sqlite.Interop.NativeMethods.Sqlite3_sqlite3.open_v2(IntPtr filename, Sqlite3Handle& ppDb, Int32 flags, IntPtr vfs)
   at Microsoft.Data.Sqlite.Interop.NativeMethods.sqlite3_open_v2(String filename, Sqlite3Handle& ppDb, Int32 flags, String vfs)
   at Microsoft.Data.Sqlite.SqliteConnection.Open()
   at Microsoft.Data.Sqlite.Interop.NativeMethods.OnLoad()
   at Microsoft.Data.Sqlite.Interop.NativeMethods.get_Sqlite3()
   at Microsoft.Data.Sqlite.Interop.NativeMethods.sqlite3_open_v2(String filename, Sqlite3Handle& ppDb, Int32 flags, String vfs)
   at Microsoft.Data.Sqlite.SqliteConnection.Open()
   at MyTodoData.functions..ctor()
   at My_Todo.MainPage..ctor()
   at My_Todo.My_Todo_XamlTypeInfo.XamlTypeInfoProvider.Activate_0_MainPage()
   at My_Todo.My_Todo_XamlTypeInfo.XamlUserType.ActivateInstance()

我的手机是运行 15254.1 的 lumia 640

【问题讨论】:

  • 我无法使用 1.1.1 版的 Microsoft.Data.Sqlite Nuget 包重现您的问题。您可以尝试清理并重建您的解决方案或将 Microsoft.Data.Sqlite NuGet 包反转为 1.1.0 版。
  • 即使对我来说问题看起来也很复杂。它只发生在电话上。我尝试构建 appx 文件并安装,即使应用程序无法打开。
  • 我的手机会不会有问题?
  • 也许你可以尝试部署到其他手机。我用 lumia 950 进行测试。
  • 重置手机还是没用

标签: .net sqlite uwp


【解决方案1】:

使用线

SqliteEngine.UseWinSqlite3();

Microsoft.Data.Sqlite.Internal.SqliteEngine.UseWinSqlite3();

已解决问题。

x86 和 x64 版本已内置 sqlite3.dll,但它不存在于 ARM 设备中。

Lumia 950 或 950xl 等较新的设备可能具有该软件包,但 lumia 640 等较旧的设备没有。

根据这个Link 在秋季创建者更新后,您应该能够在没有任何额外二进制文件的情况下使用 SQLite。我的手机有秋季创作者更新,但项目的目标版本是周年更新。

现在它使用 nuget 提供的 Sqlite 引擎,而不是系统安装的引擎。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-27
    • 2014-02-13
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2020-02-27
    • 1970-01-01
    • 2019-02-02
    相关资源
    最近更新 更多