【问题标题】:General approach to missing DLL's缺少 DLL 的一般方法
【发布时间】:2010-09-30 20:01:43
【问题描述】:

我想每个人都会不时遇到缺少 dll 的问题。我想要得到的是查找和安装 dll 的“推荐”方法。使用depends.exe 很容易找出丢失的dll。

【问题讨论】:

    标签: c++ windows visual-studio dll


    【解决方案1】:

    不要再使用depends.exe了,它跟不上Windows核心的发展和像并行缓存这样的部署策略。试图修复它给出的警告实际上会使你的机器非常糟糕。仅在程序实际启动失败时才使用它作为提示。

    【讨论】:

    • 它仍然是一个非常有用的工具,有助于显示依赖关系和诊断问题(我不知道有任何替代工具也能完成这项工作),但你指出你是对的必须对它的发现持保留态度
    【解决方案2】:

    我经常遇到的 99% 的缺失 dll 错误是缺少 C++ 运行时库(例如 =MSVC*.dll=)或 .Net 框架,开发人员在其中构建了与 C++ 运行时的动态链接但没有'没有创建具有所需合并模块的安装程序,或者他们构建了一个调试版本,该版本链接到您不允许重新分发的调试运行时库。

    在绝大多数情况下,只需安装正确的 Visual Studio 2005/2008 C++ 运行时(例如,参见 here)或 .Net 框架即可解决问题。

    【讨论】:

      【解决方案3】:

      这在很大程度上取决于缺少哪些 DLL 以及缺少它们的原因,我不知道是否有万能的答案。

      我的建议是使用依赖来查找缺少哪些 DLL,尝试找出应该安装这些 DLL 的位置(以及应该安装它们的应用程序),然后尝试重新安装该应用程序或找出发生了什么搞砸了 dll。

      要检查的另一件事是 32 位/64 位不匹配,这有时会让人觉得 DLL 似乎丢失了,尤其是在 64 位平台上。

      或者,如果您使用的是 .NET,有时您可能会遇到程序集版本和 GAC 的问题。

      您还可以检查 PATH 环境变量,我建议不要盲目地添加到您的 PATH 以使其找到您想要的 DLL,这可能会导致各种其他奇怪的问题。

      有时您必须修改 PATH 或复制文件才能使事情正常运行,但如果您能首先找出问题所在并修复它,通常会更好。

      【讨论】:

        【解决方案4】:

        如果可能,从其发布者的网站获取 DLL,然后按照发布者的说明进行安装。不要忘记遵守许可规则!

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-15
          • 2020-09-01
          • 2014-08-31
          • 2010-09-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多