如果我将模块链接到使用WinSxS部署的mydll.dll,我模块中的PE头将只引用"mydll.dll".Windows如何在运行时确定,首先应该通过WinSxS加载此依赖项,其次是它所组装的程序集?
它通过"激活上下文"来实现.在我看来,在您了解激活上下文及其管理方式之前,WinSxS没有任何意义.
我在http://omnicognate.wordpress.com/2009/10/05/winsxs/上写了一篇相当长的博客文章解释细节.
总结本文,激活上下文是WinSxS在运行时使用的结构,用于将未版本控制的对象名称(例如DLL名称)解析为有关如何定位它们的完整信息.WinSxS中"清单"的目的是构建激活上下文.如果不了解这些激活上下文的构造方式和时间以及它们如何被管理(它们保存在线程局部堆栈中),就不可能推断通过WinSxS加载DLL所涉及的步骤,因此无法诊断可能出现的大多数问题.
| 归档时间: |
|
| 查看次数: |
1968 次 |
| 最近记录: |