首页 > 解决方案 > 有没有办法搜索和复制所有的 DLL 依赖项?

问题描述

众所周知,当尝试运行缺少某些依赖 DLL 的程序时,系统会抱怨“缺少 dll”错误。我用来避免这种情况的方法是将所有依赖的 DLL 打包到安装程序中,以便该软件可以在其他设备上运行。然而,随着依赖 DLL 的数量越来越多,手动搜索和复制 DLL 变得如此繁琐,尤其是考虑到这些直接依赖的 DLL 可能有自己的依赖关系。

我知道dumpbinDependency WalkerDependencies来跟踪 DLL 依赖关系。但他们只列出了依赖的 DLL。我想知道是否有任何命令/脚本/工具可以:

  1. 递归搜索可执行文件的依赖 DLL
  2. 将这些依赖项复制到指定目录
  3. 最好支持从指定目录中排除 DLL,例如C:\WINDOWS\system32\

老实说,我不知道这种事情是否存在。如果没有,你们如何处理这个 DLL 问题?

标签: c++windowsinstallationsetup-deployment

解决方案


我一直在此链接下使用 InstallAware Express CodeGear Edition http://cc.embarcadero.com/Item/24997

它不再继续。但是那里有一个菜单,它可以找到并定位依赖的 dll 或 bpl 文件,然后您创建一个快速而肮脏的安装项目,所有这些都复制到一个文件夹中。比您可以将它们用于您的应用程序。这不再适合我,我也在寻找另一种工具。如果你发现了什么,请告诉我。


推荐阅读