【问题标题】:Find all modules with a dependency on a specific DLL查找依赖于特定 DLL 的所有模块
【发布时间】:2021-08-03 14:16:51
【问题描述】:

我知道我可以使用 Dependency Walker(以及更新的重写)之类的工具来回答“X 有哪些 DLL 依赖项?”的问题

但我在我们的解决方案中内置了大约 100 个模块,并且从几年前开始,zlib.dll 已添加到我们的版本中。我想找出我们的哪些(如果有的话)模块需要这个旧 DLL,而不需要在每个模块上运行依赖项。

有没有办法轻松做到这一点?

【问题讨论】:

  • 为什么“没有在每个上运行依赖walker”?您可以在命令行中运行它(最后是stackoverflow.com/questions/44450813/…),这很容易实现自动化。您只想要直接家属还是整棵树?
  • 我没有意识到,如果我可以轻松地转储到文件中进行搜索,答案可能就这么简单。我认为我需要考虑间接依赖项,因为我知道许多其他第三方库都在使用 zlib。

标签: visual-studio dll dependency-walker


【解决方案1】:

这可以通过编写一个枚举所有模块 DLL 并使用 CLI of dependency walker 的脚本(bat 文件或 PowerShell 脚本)来完成。

打印 DLL 的所有依赖模块的命令行如下所示: ./depends.exe /pl:1 /oc:./depends.csv ./depends.dll

然后在文件中进行简单的文本搜索以在输出 CSV 中找到 zlib.dll。

文件枚举可以按照here的描述来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-14
    • 2010-12-22
    • 2015-03-16
    • 2013-02-13
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    相关资源
    最近更新 更多