从1.7.211到1.7.212,我的安装程序正在执行次要升级,但我希望它始终执行重大升级。新安装程序应始终覆盖先前安装程序所安装的所有内容,无一例外。有没有办法修改installshield项目来完成这个?
答案 0 :(得分:1)
对于MSI项目,请转到'升级'区域(在'媒体')。在“升级Windows安装程序设置'创建一个新的主要升级项目。对于该项目,请选择'在特定版本范围内'并将最大版本设置为大于当前版本的版本号(例如,在您的情况下为1.8)。
这样,当Windows Installer检测到它应该以升级模式运行时,它会看到当前安装的版本(1.7.11)适用于主要升级规则,并将继续执行主要升级。
答案 1 :(得分:0)
我假设你正在使用基本的MSI或InstallScript MSI项目类型。对于每个版本,您必须采取必要的步骤来执行主要升级(确切地说,这是MSI rule,而不是InstallShield规则。)
在InstallShield项目中,在“升级”视图中创建一个主要升级。在设置时,您需要说“任何以前的版本”。
然后,对于每个版本,您需要增加版本号(前三位数之一,MSI忽略第四位)和产品代码GUID。
我不同意你的声明“新安装程序应始终覆盖以前安装程序所安装的所有内容,无一例外。”当只更新在发行版之间更改的文件时,有许多部署模型是首要任务。如果那个模型目前适合你,那很好。只需对次要和补丁升级的可能性以及那些在发布计划方面看起来的样子开放。