Windows installer 什么';MSI中InstallExecute和InstallFinalize操作的区别是什么?

Windows installer 什么';MSI中InstallExecute和InstallFinalize操作的区别是什么?,windows-installer,Windows Installer,在MSI官方文档中,InstallExecute标准操作如下 InstallExecuteAgain操作运行包含所有操作的脚本 在安装开始后的操作序列中,或 上次InstallExecuteAgin操作或上次InstallExecute操作 令人惊讶的是,在我看到的所有MSI文件中,在InstallExecute之后排队的InstallFinalize操作完全相同 InstallFinalize操作运行包含所有操作的脚本 在安装开始后的操作序列中,或 InstallExecute或Install

在MSI官方文档中,
InstallExecute
标准操作如下

InstallExecuteAgain操作运行包含所有操作的脚本 在安装开始后的操作序列中,或 上次InstallExecuteAgin操作或上次InstallExecute操作

令人惊讶的是,在我看到的所有
MSI
文件中,在
InstallExecute
之后排队的
InstallFinalize
操作完全相同

InstallFinalize操作运行包含所有操作的脚本 在安装开始后的操作序列中,或 InstallExecute或InstallExecuteAgin操作的执行


如果我正确阅读了文档,那么
脚本实际上就是安装脚本。它只执行一次。如何记录两个顺序动作来执行相同的工作,并且只执行一次?

InstallExecute
InstallExecuteAgain
InstallFinalize
都执行安装脚本。不同之处在于
InstallExecute
InstallExecuteAgain
让事务继续进行。因此,您基本上可以“中断”安装,执行其他操作,然后在完成后调用
InstallFinalize
,或者如果需要再次中断,则调用
installexecutegain
,继续安装,和
InstallFinalize
都执行安装脚本。不同之处在于
InstallExecute
InstallExecuteAgain
让事务继续进行。因此,您基本上可以“中断”安装,执行其他操作,然后在完成后调用
InstallFinalize
,或者在需要再次中断时调用
installexecutegain
,让安装继续进行