【问题标题】:Dot Local file to deal with DLL Hell issues?点本地文件来处理 DLL Hell 问题?
【发布时间】:2010-09-28 10:16:18
【问题描述】:

我了解到,在应用程序目录中放置一个名为 <AppName>.exe.local 的空文件将导致应用程序首先在该目录中查找 DLLsOCXs,以避免出现 DLLs 和 @ 冲突的问题987654325@ 在系统的其他地方找到。

但是应用程序不是首先在应用程序目录中查找吗? .local文件实际上有什么作用?

【问题讨论】:

    标签: dll


    【解决方案1】:

    坦率地说,我以前从未听说过.local 方案,但快速搜索后发现this article 很好地解释了它:

    对于应用程序 foo.exe,如果存在 foo.exe.local 文件,Windows 将首先查看 foo.exe 的应用程序目录,然后开始常规的 dll 搜索。为了缓解 COM 问题,重定向既适用于完整路径 dll 加载,也适用于部分名称加载。

    似乎.local 文件甚至强制首先搜索应用程序目录的绝对路径,而通常绝对路径不变,只有相对路径跟随DLL search order

    【讨论】:

    • 是否需要注册应用程序目录中的 DLL/OCX?
    • 我认为不会。本地文件可替代系统文件(可能已经注册),所以我认为您不必注册这些文件。
    【解决方案2】:

    应用程序可以依赖于特定的 共享 DLL 的版本并开始 如果另一个应用程序是失败的 安装了较新或较旧的 同一个 DLL 的版本。那里有两个 确保您的应用程序的方法 使用正确的 DLL:DLL 重定向 和并排的组件。 开发人员和管理员应该 对现有的使用 DLL 重定向 应用程序,因为它不 需要对 应用。如果您正在创建一个新的 应用程序或更新应用程序 并希望隔离您的应用程序 从潜在问题中,创建一个 并排组件。

    参考:Dynamic-Link Library Redirection

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-25
      相关资源
      最近更新 更多