一个标准安装包,有第一次安装模式,还有修复维护模式和卸载。
无论是MSI工程里Sequence,还是InstallScript中OnBegin,OnEnd等事件响应函数,有些动作会在各种模式下都会执行到,所以需要判断运行模式,以便执行相对应的代码。
Basic MSI工程,通过Condition确定安装模式:
- 第一次安装:Not Installed
- 修复维护:Installed
- 卸载:REMOVE=“ALL”
注意:InstallScript MSI工程里的Condition也同Basic MSI工程
InstallScript工程:
通过系统变量MAINTENANCE来判断,在第一次安装,该变量值为FALSE;如果是修复维护或卸载,则该变量值为TRUE。
比如代码可以这样写:
if (!MAINTENANCE) then
// 这次运行第一次安装的执行代码
endif;
另外,InstallScript工程和InstallScript MSI工程还可以在OnFirstUIBefore,OnMaintUIBefore等事件响应函数里写相应的代码。