我开始使用System.Data.SQLite和“SELECT load_extension(”path / to / zumero.dll“)”,但我目前正在使用SQLite Windows shell,因为我认为我在某种程度上做错了。我在shell中遇到的错误与我在C#world中加载扩展时的错误相同。
sqlite> .load "windows\ext\x64\zumero.dll";
Error: The specified module could not be found.
指定绝对路径会导致出现相同的错误消息。当我使用依赖性walker打开它时,显然缺少以下依赖项:
API-MS-WIN-CORE-COM-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ERROR-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-ROBUFFER-L1-1-0.DLL
API-MS-WIN-CORE-WINRT-STRING-L1-1-0.DLL
API-MS-WIN-SHCORE-SCALING-L1-1-0.DLL
DCOMP.DLL
IESHIMS.DLL
我觉得我必须在这里做错事(对WinRT的依赖似乎很奇怪)但是真的看不出来。 “终端游戏”在Win Server 2008 R2机器上有一个C#Web应用程序,它将数据写入Zumero SQLite实例,该实例与多个移动设备同步。
干杯
答案 0 :(得分:1)
我马上重现了你的问题,并且有一段时间也有“一定做错了”的感觉,因为我知道这在早在XP的系统上就已经过测试了。原来这是字符串中反斜杠\
的问题( ugh ); SQLite使用它们进行转义。只需使用正斜杠/
,或将它们加倍\\
。我将在README中为此添加一个明确的注释。
我同意WinRT依赖项乍一看似乎很奇怪。看起来他们最终都是Zumero依赖wininet.dll
的结果。 WinRT DLL位于shell32.dll
等系统模块下方。有趣的是他们的系统有多深,虽然我猜最终它并不太令人惊讶。