使用标准补丁时如何检测以前的版本

时间:2013-01-09 17:21:08

标签: windows-installer installshield patch installshield-2011

我使用InstallShield 2011 Basic MSI成功创建了一个标准补丁。我在检测已安装的应用程序的早期版本时遇到问题。例如,我有一个名为XYZ的应用程序,其基本版本为3.7.0.188,我想使用版本3.7.0.201进行修补。我可以成功地将此补丁应用于3.7.0.188基础。现在,如果我安装早期版本的应用程序XYZ(3.7.0.173)并尝试应用我的补丁,则会失败。我希望能够检测到这一点并显示一个无法完成的对话框,或者我的想法是错的?这样做的正确方法是什么?我觉得InstallShield本来应该能够做到这一点。

2 个答案:

答案 0 :(得分:0)

通常,当您尝试将修补程序应用于与其目标不匹配的版本时,Windows Installer应该给您一条类似于“Windows安装程序服务无法安装升级修补程序的消息,因为要升级的程序可能会丢失,或者升级补丁可以更新程序的不同版本......“你没有收到这条消息吗?

这是由我所知的操作系统控制的,而不是由InstallShield控制的。

答案 1 :(得分:0)

要探索的一件事是,如果您使用次要升级修补程序而不是上面描述的小型更新修补程序,则会看到不同的行为。由于您尚未更改ProductVersion的前三个部分之一,因此您将提供一个小更新。这些更难以推理,因为Windows Installer通常认为这些版本是等效的,并且根本不会做任何事情来阻止你走向“错误”的方向。

请参阅Patching and Upgrades以及有关小更新和次要升级的链接文章。