1

从 1.7.211 升级到 1.7.212 时,我的安装程序正在执行小升级,但我希望它始终执行大升级。新安装程序应始终覆盖以前安装程序安装的所有内容,无一例外。有没有办法修改 installshield 项目来完成这个?

4

2 回答 2

1

对于 MSI 项目,请转到“升级”区域(在“媒体”下)。在“升级 Windows 安装程序设置”下,创建一个新的主要升级项目。对于该项目,选择“在特定版本范围内”并将最大版本设置为大于当前版本的版本号(例如,在您的情况下为 1.8)。

这样,当 Windows Installer 检测到它应该在升级模式下运行时,它会看到当前安装的版本 (1.7.11) 适用于主要升级规则,并将继续执行主要升级。

于 2016-05-26T05:29:43.807 回答
0

我将假设您使用的是基本 MSI 或 InstallScript MSI 项目类型。对于每个版本,您必须采取必要的步骤来进行重大升级(准确地说,这是MSI 规则,而不是 InstallShield 规则)。

在您的 InstallShield 项目中,在 Upgrades 视图中创建一个 Major Upgrade。设置时您需要说“任何以前的版本”。

然后,对于每个版本,您需要增加版本号(前三位数字之一,MSI 忽略第四位)和产品代码 GUID。

我不同意您关于“新安装程序应始终覆盖以前安装程序安装的所有内容,无一例外”的说法。当仅更新版本之间已更改的文件是重中之重时,有许多部署模型。如果该模型目前适合您,那就太好了。只需对次要和补丁升级的可能性以及在发布计划方面的情况持开放态度。

于 2016-05-26T05:25:41.510 回答