猜测一下Windows Installer的安装过程。注意:仅仅是根据本人经验猜测而成,并不一定正确,而且一定不完整。 1. 应用程序的安装。 首先将安装文件 abc.msi 复制到 %WinDir%/Installer 下,文件名改名为 xxxxxx.msi ,其中 xxxxxxx 为16进制数。然后将源文件 abc.msi 所在位置保存到一个名为SOURCEMGMT 的服务中。然后取得该软件的软件包 id 并注册。最后进行软件安装。 2. 打补丁。 首先与程序安装过程相同,将补丁文件 def.msp 备份到 %WinDir%/Installer 下面,并进行相应的注册等工作。然后检查该补丁是否与已安装的补丁冲突,如没有冲突则直接安装,否则利用以前在%WinDir%/Installer下备份的安装文件将冲突的补丁进行回滚并重新安装。例如,软件 abc.msi 打了两个补丁 def1.msp 和 def3.msp,现在要安装 def2.msp,检测出 def2.msp应当在 def3.msp之前进行安装,则自动卸载 def3.msp,然后安装 def2.msp,再安装 def3.msp。因为以前在 %WinDir%/Installer 下备份了 def3.msp,所以这里可以利用以前的备份进行 def3.msp的删除和安装。 3. 卸载 按照顺序依次卸载软件的补丁和软件本身。 4. 找不到备份时的处理 如果在进行软件包维护时,%WinDir%/Installer 下找不到所需的安装文件备份,则访问 SOURCEMGMT 服务,得到该安装文件的原位置,再试图到原位置去寻找。如果再找不到则提示安装失败。 |