独立组件

安装包的作者可以指定安装程序将应用程序的共享文件(通常共享 DLL)复制到该应用程序的文件夹而不是共享位置。 然后,此专用文件集(DLL)仅由应用程序使用。 以这种方式将应用程序与其共享组件隔离具有以下优势:

  • 应用程序始终使用部署共享文件的版本。
  • 安装应用程序不会覆盖其他应用程序的共享文件的其他版本。
  • 使用不同版本的共享文件的其他应用程序的后续安装无法覆盖此应用程序使用的文件。

由于 COM 的当前实现在每个 CLSID/上下文对的注册表中保留一个完整路径,因此它强制所有应用程序使用相同的共享 DLL 版本。 若要使应用程序能够保留 COM 服务器的专用副本,Windows 2000 中的系统加载程序会检查是否存在 COM 服务器。应用程序的文件夹中的 LOCAL 文件。 如果系统加载程序检测到 .LOCAL 文件会更改其搜索逻辑,以首选与应用程序位于同一文件夹中的 DLL。

当 Windows Installer 运行 IsolatComponents作时,IsolatedComponent 表的Component_Shared列中指定的组件(通常是共享 DLL)的文件复制到与组件(通常是 .exe 文件)在Component_Application列中指定的同一文件夹中。 安装程序在此目录中创建一个文件,长度为零字节,其密钥文件的短文件名用于Component_Application(通常名称与应用程序的 .exe相同)。当地。 安装程序在其共享位置使用组件的注册,并且不会为专用位置中的组件副本编写任何注册信息。

有关详细信息,请参阅: