【问题标题】:Unable to load DLL 'sqlite3.dll': The specified module could not be found in UWP Xamarin.Forms无法加载 DLL 'sqlite3.dll':在 UWP Xamarin.Forms 中找不到指定的模块
【发布时间】:2016-07-31 00:44:54
【问题描述】:

我正在尝试使用 Azure Mobile SQLiteStore 包为 UWP Xamarin.Forms 编写应用程序。

我在使用 SQLitePCL 包,它是上述包的依赖项。

在我的 UWP 项目中,我引用了通用 Windows 平台的扩展 SQLite,它也是 Microsoft.VCLibs 的依赖项

错误是:无法加载 DLL 'sqlite3.dll':找不到指定的模块。 (HRESULT 异常:0x8007007E)

Android 应用运行正常,只有 UWP 有这个问题,应用一开始调用 SQLite 就会崩溃。

还有 Stacktrace:

at SQLitePCL.SQLiteConnection.SetTemporaryDirectory()
at SQLitePCL.SQLiteConnection..ctor(String fileName, SQLiteOpen openFlag, Boolean setTemporaryDirectory)
at Microsoft.WindowsAzure.MobileServices.SQLiteStore.MobileServiceSQLiteStore..ctor(String fileName)
at WellDoneIt.Services.WellDoneItMobileService.d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at WellDoneIt.Services.WellDoneItMobileService.d__8.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
at WellDoneIt.ViewModel.ListViewModel.d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
at WellDoneIt.ViewModel.ListViewModel.<<-ctor>b__2_2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.b__6_0(Object state)
at System.Threading.WinRTSynchronizationContext.Invoker.InvokeCore()

有人知道如何解决这个问题吗?

更新: 我还仔细检查了处理器架构,对于模拟器,它设置为 x86,对于真正的 Win10 移动设备,它设置为 ARM。

两者都遇到完全相同的问题。但是,当我在本地机器(我开发的 Windows 10 操作系统)上运行我的应用程序时,一切正常。

提前致谢。

【问题讨论】:

  • 确保您的构建输出没有使用任何 CPU。它应该是 x86 或 ARM,具体取决于您正在运行的设备。
  • 整理好了。对于模拟器 x86 和真实设备 ARM,在 UWP 项目中。对于 PCL DLL,我得到了 AnyCPU,我认为这是正确的设置。感谢您的评论。

标签: sqlite azure win-universal-app xamarin.forms azure-mobile-services


【解决方案1】:

您需要为 Windows 平台添加对 SQLite 的引用。

在您的 UWP 项目中,转到添加引用。

转到通用 Windows > 扩展

然后确保为通用应用平台勾选 SQLite

【讨论】:

  • 感谢您的回答。我知道 UWP 和 Windows 8 应用程序的此扩展。获得了它的最新版本,与 VC++ 依赖项相同,都引用了我的项目,但由于某种原因,我收到了这个错误。
【解决方案2】:

我已经为同样的问题苦苦挣扎了好几个小时。

我将 SQLite 升级到最新版本,我认为这就是问题的根源。

我下载了 Visual Studio 2015 Update 2,运行并选择了修改。然后确保所有突出显示的更新都被勾选并且不推荐使用的项目未被勾选。 (更新 2 包含在最新的社区下载中)

我希望这对你有用。

【讨论】:

  • 你的答案是什么意思是下载最新的社区VS 2015?如果是这样,我必须告诉你,我的问题是在全新安装系统和几天前下载的 VS2015 更新 2 后立即开始发生的。在我使用较旧但不断更新的 VS2015 社区开发旧 Windows 安装之前,一切正常。当我需要重新安装我的系统时(对于其他一些不相关的问题)。我从 Web 安装了最新的 VS2015 Update 2,其中包含 Xamarin 所需的工具,并进行了所有必要的更新。然后这个问题击中了我......不过感谢您的回答。
  • 我的问题一定是另一个问题,而且为了您的信息,SQLite 网站上似乎存在与此相关的问题,但没有提供解决方案。祝你好运。
  • 你能在这里分享链接吗,在那里找不到任何相关的东西。谢谢
  • 抱歉现在找不到了。供参考。我在用。 SQLite.UWP.2015,版本=3.12.1 和 Visual C++ 2015 Runtime for Universal Windows Platform Apps,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
相关资源
最近更新 更多