installscript如何知道是升级、修复还是卸载
how to know whether upgrading, repairing or uninstalling in installscript
我正在尝试在 Basic MSI 项目中编写一些 InstallScript 代码。我想知道如何确定安装是升级或修复或卸载。
None 这些作品在 InstallScript -
REMOVE~="ALL"
NOT Installed
REINSTALL<>""
PATCH<>""
REMOVEALLMODE
我发现 this blog 并且 MAINTENANCE 标志有效。但它只能确定它是否是 Initial Install 或 Not。在升级、修复和卸载中始终 "TRUE"。
感谢任何帮助。
您发布的示例字符串都是 examples of Windows Installer Conditions. You can't just cut and paste those into an InstallScript if
. Instead you have to call MsiEvaluateCondition 让 Windows 安装程序处理它们。
// 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-based 安装。对于纯 InstallScript 项目,Windows 安装程序 API 在很大程度上不可用或无法使用,您应该将代码放在适当的事件处理程序中(例如 OnFirstUIBefore)。
我正在尝试在 Basic MSI 项目中编写一些 InstallScript 代码。我想知道如何确定安装是升级或修复或卸载。
None 这些作品在 InstallScript -
REMOVE~="ALL"
NOT Installed
REINSTALL<>""
PATCH<>""
REMOVEALLMODE
我发现 this blog 并且 MAINTENANCE 标志有效。但它只能确定它是否是 Initial Install 或 Not。在升级、修复和卸载中始终 "TRUE"。
感谢任何帮助。
您发布的示例字符串都是 examples of Windows Installer Conditions. You can't just cut and paste those into an InstallScript if
. Instead you have to call MsiEvaluateCondition 让 Windows 安装程序处理它们。
// 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-based 安装。对于纯 InstallScript 项目,Windows 安装程序 API 在很大程度上不可用或无法使用,您应该将代码放在适当的事件处理程序中(例如 OnFirstUIBefore)。