Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在移动设备上运行的通用Windows应用程序中加载DLL sqlite3_Sqlite_Sqlite Net_Uwp - Fatal编程技术网

无法在移动设备上运行的通用Windows应用程序中加载DLL sqlite3

无法在移动设备上运行的通用Windows应用程序中加载DLL sqlite3,sqlite,sqlite-net,uwp,Sqlite,Sqlite Net,Uwp,我正在开发UWP。我正在使用sqlite net pcl库。在将我的应用程序从RC升级到RTM后,如果它在移动仿真器或设备上运行,我会遇到一个运行时错误-找不到sqlite3.dll。在我添加了C++ 2013运行时包的引用后,它在本地运行。 异常消息: 消息“SQLitePCL.raw”的类型初始值设定项引发了 “字符串” innerexception消息: {“无法加载DLL'sqlite3”:无法加载指定的模块 已找到。(来自HRESULT:0x8007007E的异常)}System.Ex

我正在开发UWP。我正在使用sqlite net pcl库。在将我的应用程序从RC升级到RTM后,如果它在移动仿真器或设备上运行,我会遇到一个运行时错误-找不到sqlite3.dll。在我添加了C++ 2013运行时包的引用后,它在本地运行。 异常消息:

消息“SQLitePCL.raw”的类型初始值设定项引发了 “字符串”

innerexception消息:

{“无法加载DLL'sqlite3”:无法加载指定的模块 已找到。(来自HRESULT:0x8007007E的异常)}System.Exception {System.DllNotFoundException}

当然,我无法添加对“Sqlite for Universal App Platform”的引用,因为我遇到以下错误

严重性代码说明项目文件行错误负载包含 具有相同目标路径“sqlite3.dll”的两个或多个文件。来源 文件:C:\ProgramFiles(x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll C:\Users\sMavrikis.nuget\packages\SQLitePCL.raw\u basic\0.7.1\build\native\sqlite3\u dynamic\winrt81\arm\sqlite3.dll TestApp1


添加对“SQLite for Universal App Platform”的引用 这将触发错误:

有效负载包含两个或多个具有相同目标路径“sqlite3.dll”的文件

发生此错误是因为错误标记的两个位置中的sqlite3.dll版本不同。 只需复制即可解决此错误

C:\ProgramFiles(x86)\Microsoft SDK\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll

C:\Users\%USERNAME%\.nuget\packages\SQLitePCL.raw\u basic\0.7.1\build\native\sqlite3\u dynamic\winrt81\arm\sqlite3.dll

覆盖现有文件


重建您的项目。现在应该可以编译了。

我收到了相同的错误消息。我开始使用SQLite PCL,它也需要SQLite作为通用应用程序平台的参考。后来我切换到SQLite.Net-PCL。那就是我犯这些错误的时候。在研究解决方案时,我发现了这一页。它起了一点作用。最终,我删除了对SQLite for Universal App Platform的引用,错误消失了。

回复晚,但现在有了问题;对我来说,解决方法是对解决方案中的所有项目执行Nuget包更新,因为其中一个包仍在使用旧的引用,并且正在执行引用另一个过期项目的正在运行的项目

如果您查看两个冲突的位置,其中一个似乎来自更为官方的Microsoft UWP扩展,而第二个则来自nuGet软件包

当我遇到这个错误时,我需要nuGet包的功能,所以我决定保留它并删除另一个引用。我在解决方案资源管理器中右键单击该项目,进入Add->Reference,然后取消选中对SQLite的引用。似乎不像将文件从一个位置复制到另一个位置那样容易出错


我通过在编译器配置中选择x64或arm修复了类似的问题

错误负载包含两个或多个具有相同目标路径“e_sqlite3.dll”的文件。源文件: C:\Users\xleon.nuget\packages\SQLitePCLRaw.lib.e\u sqlite3.v140\1.1.0\runtimes\win10 arm\native\e\u sqlite3.dll C:\Users\xleon.nuget\packages\sqlitepclraw.lib.e\u sqlite3.v140\1.1.0\runtimes\win10-x86\native\e\u sqlite3.dll


但是,这当然不允许您运行emulator

右键单击UWP项目并选择属性

并确保解决方案平台目标与项目平台目标匹配

如果它们不同,则会出现生成错误,即将文件复制到具有相同名称(但不同目标平台)的相同目标


我通过在UWP.csproj中添加一个包含SQLite dll的条件来解决这个差异

<SDKReference Include="SQLite.UWP.2015, Version=3.19.3" Condition="'$(Configuration)'=='Debug'">
  <Name>SQLite for Universal Windows Platform</Name>
</SDKReference>

用于通用Windows平台的SQLite

我需要使用UWP版本进行调试,否则我的XAMl设计器会出现“找不到SQLite.dll…”的问题。

谢谢。这对我有帮助。我有不同的方法。可以在错误消息中看到。如上所述,您必须从和复制到您自己的错误中指示的文件夹(它们对我来说是不同的)。让我的应用程序编译的是将程序文件复制到软件包文件夹。还请注意,这个解决方案并不总是有效(我用两个不同的应用程序尝试了它,但只在其中一个应用程序上有效)这为我解决了问题,谢谢。这对其他导入项目的人来说不是问题吗?这个答案帮助我注意到我引用了<代码>微软Visual C++ 2013运行时包<代码>,而不是通用Windows 包的 VisualC++ 2015运行时。修正参考文献为我解决了这个问题。