Installation InstallShield主要更新时的自定义操作

Installation InstallShield主要更新时的自定义操作,installation,windows-installer,installshield,Installation,Windows Installer,Installshield,当我的setup.exe处于主要升级模式时,我正在使用InstallShield并尝试执行shell脚本(自定义操作)。 我确信安装程序确实在主要升级模式下运行,因为它首先卸载已安装的版本,然后安装setup.exe版本 但是,我在行为和逻辑下添加的操作没有发生。。。 我将安装UI序列设置为,并将安装UI条件设置为是主要升级,但没有设置 如果我希望在主要升级过程中以及卸载开始时(在安装更新版本之前)执行自定义操作,我应该在序列中的哪个位置插入自定义操作(在哪个序列之后) 有什么想法吗?我做错了什

当我的setup.exe处于主要升级模式时,我正在使用InstallShield并尝试执行shell脚本(自定义操作)。 我确信安装程序确实在主要升级模式下运行,因为它首先卸载已安装的版本,然后安装setup.exe版本

但是,我在
行为和逻辑
下添加的操作没有发生。。。
我将
安装UI序列设置为
,并将
安装UI条件设置为
是主要升级,但没有设置

如果我希望在主要升级过程中以及卸载开始时(在安装更新版本之前)执行自定义操作,我应该在序列中的哪个位置插入自定义操作(在哪个序列之后)

有什么想法吗?我做错了什么

作为主要升级的一部分卸载安装程序时,安装程序将以静默模式运行。这意味着没有GUI和您拥有的操作 插入到InstallUISequence序列中的将永远不会运行 技术术语跳过整个安装顺序,只有 InstallExecuteSequence运行

我们需要知道您的行动是如何提供正确建议的。它是在对系统进行更改,还是只是显示信息或请求用户输入?如果您的自定义操作对系统进行了更改,则应将其插入InstallExecuteSequence,而不是InstallUISequence(不应从UI序列对系统进行任何更改)。在其他情况下,您应该将自定义操作插入到两个序列中——这完全取决于它在做什么。您正在使用Installshield Express btw吗

您的
条件是\u MAJOR\u升级
应该可以,但您也可以使用
升级产品代码
,这是Windows Installer中的内置条件,我相信前者是InstallShield自己的自定义条件。我更喜欢标准的Windows Installer属性

但是,您应该知道条件
UPGRADINGPRODUCTCODE
在安装安装程序中不正确,仅在卸载安装程序中正确。我 相信主要升级在安装设置中有效,但是 不在卸载安装程序中。这两种情况都可以设置,但我不是 当然

有关自定义操作条件的方便图表,请参阅Flexera(InstallShield制造商)的此PDF:。我没有测试这些条件,请彻底测试

使自定义操作在意外时间运行的错误条件化非常常见。请仔细分析该操作何时实际运行。如果它应该在每次卸载时运行(无论是由主要升级还是手动卸载启动的卸载),更好的条件可能是:
REMOVE~=“ALL”
(对所有卸载都有效)。就我个人而言,我喜欢在我的所有条件中添加
NOT PATCH
,以防止所有自定义操作以补丁模式运行(我发现这是很少需要的)。尝试上面的链接图表,以帮助您决定您的条件

作为主要升级的一部分卸载安装程序时,安装程序将以静默模式运行。这意味着没有GUI和您拥有的操作 插入到InstallUISequence序列中的将永远不会运行 技术术语跳过整个安装顺序,只有 InstallExecuteSequence运行

我们需要知道您的行动是如何提供正确建议的。它是在对系统进行更改,还是只是显示信息或请求用户输入?如果您的自定义操作对系统进行了更改,则应将其插入InstallExecuteSequence,而不是InstallUISequence(不应从UI序列对系统进行任何更改)。在其他情况下,您应该将自定义操作插入到两个序列中——这完全取决于它在做什么。您正在使用Installshield Express btw吗

您的
条件是\u MAJOR\u升级
应该可以,但您也可以使用
升级产品代码
,这是Windows Installer中的内置条件,我相信前者是InstallShield自己的自定义条件。我更喜欢标准的Windows Installer属性

但是,您应该知道条件
UPGRADINGPRODUCTCODE
在安装安装程序中不正确,仅在卸载安装程序中正确。我 相信主要升级在安装设置中有效,但是 不在卸载安装程序中。这两种情况都可以设置,但我不是 当然

有关自定义操作条件的方便图表,请参阅Flexera(InstallShield制造商)的此PDF:。我没有测试这些条件,请彻底测试


使自定义操作在意外时间运行的错误条件化非常常见。请仔细分析该操作何时实际运行。如果它应该在每次卸载时运行(无论是由主要升级还是手动卸载启动的卸载),更好的条件可能是:
REMOVE~=“ALL”
(对所有卸载都有效)。就我个人而言,我喜欢在我的所有条件中添加
NOT PATCH
,以防止所有自定义操作以补丁模式运行(我发现这是很少需要的)。请尝试上面的链接图表,以帮助您决定您的条件。

很高兴听到这个消息。请记住不要使用安装GUI中的即时模式自定义操作对系统进行更改-这些操作将在静默模式下跳过,静默运行时安装将不完整。对于使用提升权限运行MSI安装的普通用户,安装程序也将失败(即时模式操作的权限被拒绝)。有关详细信息,请阅读:。很高兴听到。请记住不要使用安装GUI中的即时模式自定义操作对系统进行更改-这些操作将在静默模式下跳过,静默运行时安装将不完整。安装程序将自动启动