我们在 Installshield 2008 Premier Edition 中使用 InstallScript MSI Project 开发了该项目。在项目中,我们添加了一个条件,以便旧版本不应安装在更高版本上。
我们面临的问题是考虑新项目,其中产品版本将为 1.0.0925.1 并添加条件以避免更高版本超过更低版本。要添加该条件,我是从上面的链接中获得的;连同此在主要升级的通用选项卡中,我已启用升级提示;因为在未来的新设置附带 1.0.0925.2 它应该要求升级。
现在,我将使用产品版本 1.0.0925.2 创建新设置,并在主要升级的通用选项卡下,我将禁用提示,因为;如果用户尝试在 1.0.0925.2 上安装 1.0.0925.1,则不应允许;在这种情况下,它工作正常;弹出提示“已安装此产品的另一个版本。无法继续安装此版本。要配置或删除此产品的现有版本,请使用控制面板上的添加/删除程序。{2D0E6C46-1CC2-4174-8AAC -0B39312D8ECE}"
现在,几天后会有变化,并且将再次使用版本 1.0.0925.3 创建另一个设置,因为升级提示将被禁用。现在我尝试在 1.0.0925.2 上安装 1.0.0925.3 显然它应该得到升级;但是这里出现了问题,而不是询问“安装程序将执行升级”,而是说“已安装此产品的另一个版本。此版本的安装无法继续。要配置或删除此产品的现有版本,请使用添加/删除控制面板上的程序。{2D0E6C46-1CC2-4174-8AAC-0B39312D8ECE}" 那是因为我禁用了 1.0.0925.2 的提示,所以不允许升级。如果我启用此功能,那么每次它都会要求升级时运行任何设置,无论是在低版本上还是在低版本上。
即使我想在 Installscript 中检查产品版本,但如果我设法获得已安装设置的产品版本以及当前运行的设置,我什至不知道如何处理。但是如何在运行时更改升级的提示,因为它是在设计时设置的。