如何知道是否在installscript中升级,修复或卸载

时间:2016-01-12 14:09:57

标签: installshield installscript

我尝试在基本MSI 项目中编写一些 InstallScript 代码。我想知道如何确定安装是升级还是修复卸载

这些都不适用于 InstallScript -

 REMOVE~="ALL"
 NOT Installed
 REINSTALL<>""
 PATCH<>""
 REMOVEALLMODE

我找到this blog并且 MAINTENANCE 标志有效。但它只能确定它是否是初始安装。始终&#34; TRUE&#34;在升级,修复和卸载。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

您发布的示例字符串都是Windows Installer examplesConditions。您只能将它们剪切并粘贴到InstallScript if中。相反,您必须致电MsiEvaluateCondition让Windows Installer处理它们。

// Note that MSICONDITION_TRUE is 1; I forgot to test whether it's defined
if MSICONDITION_TRUE = MsiEvaluateCondition(hMSI, "Not Installed") then
    MessageBox("First-time installation", INFORMATION;
endif;

请注意,这仅适用于基于MSI的安装。对于纯InstallScript项目,Windows Installer API基本上不可用或不可用,您应该将代码放在正确的事件处理程序中(例如OnFirstUIBefore)。