我正在开发一个UWP。我正在使用sqlite-net-pcl库。将我的应用程序从RC升级到RTM后,我收到运行时错误 - 无法找到sqlite3.dll - 如果它在Mobile模拟器或设备上运行。在我添加了对C ++ 2013 Runtime Package的引用并在Local Machine中运行它之后,它完美地工作了。
异常消息:
消息“'SQLitePCL.raw'的类型初始化程序引发了一个 例外。“string
innerexception消息:
{“无法加载DLL的sqlite3':指定的模块不能 找到。 (来自HRESULT的异常:0x8007007E)“} System.Exception {System.DllNotFoundException}
当然我无法为'Sqlite for Universal App Platform'添加引用,因为我发现了以下错误
严重级代码说明项目文件行错误有效负载包含 两个或多个具有相同目标路径'sqlite3.dll'的文件。资源 files:C:\ Program Files(x86)\ Microsoft 软件开发工具包\ UAP \ v0.8.0.0 \ ExtensionSDKs \ SQLite.UAP.2015 \ 3.8.11.1 \的Redist \调试\ ARM \ sqlite3.dll C:\ Users \ sMavrikis.nuget \ packages \ SQLitePCL.raw_basic \ 0.7.1 \ build \ native \ sqlite3_dynamic \ winrt81 \ arm \ sqlite3.dll TestApp1
答案 0 :(得分:33)
添加对“通用应用平台的SQLite”的引用' 这将触发错误:
Payload包含两个或多个具有相同目标路径的文件' sqlite3.dll'。
发生此错误是因为错误标记的位置中的sqlite3.dll版本不同。 只需复制
即可解决此错误C:\ Program Files(x86)\ Microsoft SDKs \ UAP \ v0.8.0.0 \ ExtensionSDKs \ SQLite.UAP.2015 \ 3.8.11.1 \ Redist \ Debug \ ARM \ sqlite3.dll
到
C:\用户\%USERNAME%\的NuGet \包\ SQLitePCL.raw_basic \ 0.7.1 \构建\天然\ sqlite3_dynamic \ winrt81 \臂\ sqlite3.dll
覆盖现有文件。
重建您的项目。它现在应该编译。
答案 1 :(得分:9)
如果你看看两个相互冲突的位置,一个似乎来自一个更正式的微软UWP扩展,而第二个来自一个nuGet包。
当我遇到这个错误时,我需要nuGet包的功能,所以我决定保留它并删除其他引用。我右键单击解决方案资源管理器中的项目,然后转到Add-> Reference,然后取消选中对SQLite的引用。看起来比将文件从一个位置复制到另一个位置更容易出错。
答案 2 :(得分:2)
我收到了相同的错误消息。我开始使用SQLite-PCL,它也需要SQLite作为Universal App Platform作为参考。后来我改用了SQLite.Net-PCL。那是我遇到这些错误的时候。在研究解决方案时,我找到了这个页面。它工作了一点。最后,我删除了针对Universal App Platform的SQLite参考,错误消失了。
答案 3 :(得分:0)
答案 4 :(得分:0)
我通过在编译器配置中选择x64或arm修复了类似的问题。
错误Payload包含两个或多个具有相同目标路径'e_sqlite3.dll'的文件。源文件: C:\ Users \用户xleon.nuget \包\ SQLitePCLRaw.lib.e_sqlite3.v140 \ 1.1.0 \运行时\ win10臂\本地\ e_sqlite3.dll C:\ Users \用户xleon.nuget \包\ sqlitepclraw.lib.e_sqlite3.v140 \ 1.1.0 \运行时\ win10 86 \天然\ e_sqlite3.dll
但是,这当然不允许你运行模拟器
答案 5 :(得分:0)
右键单击UWP项目,然后选择“属性”。
确保Solution Platform目标与Project Platform目标匹配。
如果它们不同,您将收到有关将文件复制到具有相同名称(但目标平台不同)的同一目标的构建错误。
答案 6 :(得分:0)
我设法通过在UWP .csproj中添加一个包含SQLite dll的条件来解决这种差异
<SDKReference Include="SQLite.UWP.2015, Version=3.19.3" Condition="'$(Configuration)'=='Debug'">
<Name>SQLite for Universal Windows Platform</Name>
</SDKReference>
我需要使用UWP版本进行调试,否则我的XAMl设计师会因为#34而无法找到SQLite.dll ...&#34;