我尝试在基本MSI 项目中编写一些 InstallScript 代码。我想知道如何确定安装是升级还是修复或卸载。
这些都不适用于 InstallScript -
REMOVE~="ALL"
NOT Installed
REINSTALL<>""
PATCH<>""
REMOVEALLMODE
我找到this blog并且 MAINTENANCE 标志有效。但它只能确定它是否是初始安装。始终&#34; TRUE&#34;在升级,修复和卸载。
感谢任何帮助。
答案 0 :(得分:0)
您发布的示例字符串都是Windows Installer examples的Conditions。您只能将它们剪切并粘贴到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)。