Dependency Walker:缺少 dll

Dependency Walker: missing dlls

我一直在尝试使用 Dependency Walker 解决可执行文件的 .dll 依赖关系。目前,我丢失了以下形式的 .dll:

API-MS-WIN-XXX

EXT-MS-WIN-XXX

例如:

API-MS-WIN-APPMODEL-IDENTITY-L1-2-0.DLL
API-MS-WIN-APPMODEL-RUNTIME-INTERNAL-L1-1-0.DLL
API-MS-WIN-BASE-UTIL-L1-1-0.DLL
API-MS-WIN-CORE-APIQUERY-L1-1-0.DLL
EXT-MS-WIN-RTCORE-NTUSER-SYSCOLORS-L1-1-0.DLL

有人知道如何解决这些问题吗? 任何帮助将不胜感激!

附加信息: 我使用 Visual Studio 2013 编译了可执行文件。最有趣的是我在编译期间没有收到任何错误。但是,由于缺少依赖项,我不能 运行 它。我还附上了dependency walker的截图:

更新 1: 作为解决问题的尝试,我尝试将 VS 在编译期间使用的库的路径添加到 $PATH 环境变量没有任何运气(Dependency Walker 仍然显示未解决的依赖项)。

这些是 API 集 - essentially, an extra level of call indirection 自 windows 7 以来逐渐引入。Dependency walker 开发似乎在此之前就停止了,它无法处理 API设置正确。

所以这些都是误报,不用担心。你没有遗漏任何东西。

另见 On API-MS-WIN-XXXXX.DLL, and Other Dependency Walker Glitches


编辑:直到 2017 年 10 月,才终于有人试图填补这一空白。见面 Dependencies by lucasg。到目前为止,我只是简单地摆弄过它,但它处理 API 设置很好,至少非常值得关注。

除了@Ofek Shilon 所说的之外,当我尝试为我的程序查找丢失的 dll 时,我通常会忽略 dependency_walker 识别为丢失的以下 dll。当 dependency_walker 说缺少这些 dll 时,您会看到您的程序运行正常。

  • API-MS-WIN-*.dll
  • EXT-MS-WIN-*.dll
  • IESHIMS.dll
  • EMCLIENT.dll
  • DEVICELOCKHELPERS.dll

您可以搜索上述以外的dll来解决您的问题。

我也忽略了:

  • EFSCORE.DLL
  • WPAXHOLDER.DLL

Dependencies 程序帮助我立即找到丢失的 DLL。它是开源的,可在此处获取:https://github.com/lucasg/Dependencies