Dot Local文件来处理DLL Hell问题?

时间:2010-09-28 01:57:00

标签: dll

我已经读过在应用程序目录中放置一个名为<AppName>.exe.local的空文件将导致应用程序首先在DLLsOCXs的目录中查找,以避免出现问题在系统的其他位置找到有冲突的DLLsOCXs

但是应用程序首先看不到应用程序目录? .local文件实际上有什么影响?

2 个答案:

答案 0 :(得分:2)

坦率地说,我之前从未听说过.local计划,但快速搜索了this article,这完全解释了它:

  

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

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

答案 1 :(得分:1)

  

应用程序可能取决于具体情况   共享DLL的版本并开始   如果另一个应用程序是失败   安装较新或更旧   同一个DLL的版本。那里有两个   确保您的申请的方法   使用正确的DLL:DLL重定向   和并排的组件。   开发人员和管理员应该   使用DLL重定向现有   应用程序,因为它没有   要求任何改变   应用。如果你要创建一个新的   申请或更新申请   并希望隔离您的应用程序   从潜在的问题,创造一个   并排的组件。

参考:Dynamic-Link Library Redirection