【发布时间】:2010-09-28 10:16:18
【问题描述】:
我了解到,在应用程序目录中放置一个名为 <AppName>.exe.local 的空文件将导致应用程序首先在该目录中查找 DLLs 和 OCXs,以避免出现 DLLs 和 @ 冲突的问题987654325@ 在系统的其他地方找到。
但是应用程序不是首先在应用程序目录中查找吗? .local文件实际上有什么作用?
【问题讨论】:
标签: dll
我了解到,在应用程序目录中放置一个名为 <AppName>.exe.local 的空文件将导致应用程序首先在该目录中查找 DLLs 和 OCXs,以避免出现 DLLs 和 @ 冲突的问题987654325@ 在系统的其他地方找到。
但是应用程序不是首先在应用程序目录中查找吗? .local文件实际上有什么作用?
【问题讨论】:
标签: dll
坦率地说,我以前从未听说过.local 方案,但快速搜索后发现this article 很好地解释了它:
对于应用程序 foo.exe,如果存在 foo.exe.local 文件,Windows 将首先查看 foo.exe 的应用程序目录,然后开始常规的 dll 搜索。为了缓解 COM 问题,重定向既适用于完整路径 dll 加载,也适用于部分名称加载。
似乎.local 文件甚至强制首先搜索应用程序目录的绝对路径,而通常绝对路径不变,只有相对路径跟随DLL search order。
【讨论】:
应用程序可以依赖于特定的 共享 DLL 的版本并开始 如果另一个应用程序是失败的 安装了较新或较旧的 同一个 DLL 的版本。那里有两个 确保您的应用程序的方法 使用正确的 DLL:DLL 重定向 和并排的组件。 开发人员和管理员应该 对现有的使用 DLL 重定向 应用程序,因为它不 需要对 应用。如果您正在创建一个新的 应用程序或更新应用程序 并希望隔离您的应用程序 从潜在问题中,创建一个 并排组件。
【讨论】: