93

我一直在尝试使用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编译了可执行文件。最有趣的是我在编译过程中没有收到任何错误。但是,由于缺少依赖项,我无法运行它。我还附上了一个依赖walker的截图:

依赖步行者

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

4

4 回答 4

108

这些是 API 集 -本质上,自 Windows 7 以来逐渐引入了额外级别的调用间接。 Dependency walker 开发似乎在此之前很久就停止了,它无法正确处理 API 集。

所以这些都是虚惊一场,没什么好担心的。你没有错过任何东西。

另请参阅API-MS-WIN-XXXXX.DLL 和其他 Dependency Walker Glitches


编辑:直到 2017 年 10 月,才终于有人试图填补这一空白。通过 lucasg满足依赖关系。到目前为止,我只是简单地摆弄了一下它,但它很好地处理了 API 集,并且至少非常值得关注。

于 2016-03-27T06:20:10.927 回答
25

除了@Ofek Shilon 所说的之外,当我尝试为我的程序查找丢失的 dll 时,我通常会忽略依赖项步行者识别为丢失的以下 dll。当dependency_walker 说这些dll 丢失时,您将看到您的程序运行良好。

  • API-MS-WIN-*.dll
  • EXT-MS-WIN-*.dll
  • IESHIMS.dll
  • EMCLIENT.dll
  • 设备锁定助手.dll

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

于 2016-10-17T01:17:15.653 回答
6

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

于 2020-10-16T12:23:33.787 回答
4

我也忽略:

  • EFSCORE.DLL
  • WPAXHOLDER.DLL
于 2017-09-12T00:44:54.303 回答