2009-06-15 95 views
0

问候朋友,防止低版本的安装在高版本

即将直奔点;我们在Installshield 2008专业版中开发了使用InstallScript MSI Project的项目。在项目中,我们增加了一个条件,使旧版本不应该在更高的版本进行安装和我得到这个信息形成以下链接

http://helpnet.acresso.com/robo/proj...Downgrades.htm

我们所面临的问题是,考虑到新的项目中,产品版本将为1.0.0925.1,并添加条件以避免更高版本的更低版本。为了增加这个条件,我从上面的链接中获得了它;在主要升级的常用选项卡中,我已经启用了升级提示;因为未来的新安装程序会自带1.0.0925.2它应该要求升级。

现在我将使用产品版本1.0.0925.2创建新的设置,并在主要升级的常用选项卡下禁用提示,因为;如果用户试图安装1.0.0925.1而不是1.0.0925.2,则不应允许;在那种情况下它工作正常;弹出窗口提示“此产品的另一版本已安装,此版本的安装无法继续,要配置或删除此产品的现有版本,请使用控制面板上的”添加/删除程序“。{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中检查产品版本,但我甚至不知道如何处理一些如何设法获得已安装设置的产品版本以及当前正在运行的设置。但我怎么在运行时更改升级的提示,因为它在设计时设置..

请帮助..

+0

除了明确问题之外,这应该是在serverfault(或...超级用户?) – 2009-06-15 05:20:19

+4

堆栈溢出是正确的地方 - 安装开发就像任何其他软件开发一样。 – 2009-06-15 13:41:20

回答

6

好的,如果您使用的是Windows Installer,那么您需要重新考虑您的版本号。 Windows安装程序只能识别major.minor.build安装包(但文件可以使用major.minor。build.revision,只是不是安装程序本身)

所以从Windows Installer的角度来看,1.0.0925.1和1.0.0925.2实际上都是1.0.0925,如果他们有相同的产品代码,那么你将会获得标准的“该产品的另一版本已经安装”对话框。

基本上,如果您想支持升级,请更改major.minor.build版本号。我们在内部使用第四个“修订版本”字段来识别beta安装程序,但安装新版本需要卸载前一个。只有在我们更改前三个字段之一并适当配置升级的公共版本中才支持升级。

1

首先,你在你的问题已经提供的链接被打破 - 你能修理它?

无论如何,我认为你遇到的问题是你没有改变ProductCode。您首先必须决定是否要进行主要或次要升级。这听起来像你已经解决了重大升级。因此,您需要生成新的ProductCode,可以使用直接编辑器并更改升级表,或者通过在InstallShield IDE的“升级”部分中创建新的“重要升级项目”。

如果您修复问题中的链接,我可能会更好地理解您的问题。

+0

哎呀!... 遗憾的博肯链接的inconvinience .. PLZ找到链接 http://helpnet.acresso.com/robo/projects/installshield14helplib/PreventingDowngrades.htm 我是否需要更改升级代码每次我创建新的设置。我会检查并更新你... – Chetan 2009-06-16 14:52:53