InstallShield MSI安装的典型“升级表”包含两个记录:“从任何版本到最新版本都是升级”和“从最新版本到任何版本都是降级”。这需要在每次主要,次要或内部版本号更改时手动复制粘贴“当前版本”编号,这不是很好。
目前,我正在使用一个脚本来解析.ism项目文件,并在构建之前替换升级表中的版本号。但这是一个肮脏的hack。也许可以在升级表中使用“ ProductVersion” MSI属性,因此产品版本仅存储在此属性中吗?我试图以多种方式输入此属性名称,例如[ProductVersion]
或##ProductVersion##
,但没有任何帮助-它不会被属性值代替,并且生成的MSI包含“ ## ProductVersion ##”文本,而不是“ 1.30”。 1264“属性值。
最佳答案
一个新项目应包含两条记录,它们的行为应与您描述的一样。但是,它们应该具有标记令牌,而不是存储实际的产品版本,例如***ALL_VERSIONS***
(对不起,我现在离我的InstallShield副本还很近)。这个令牌的名称不是很好,因为真正发生的是在构建时用当前的ProductVersion代替了它。
如果您已经将令牌更改为实际版本,则可以通过选择引用“我的版本”而不是实际版本的单选按钮,将其更改为“友好”视图。或者,您可以创建一个新项目来查看它,并将其复制到其中。该令牌在InstallShield的所有最新版本的最小或最大字段中起作用(但在某些旧版本中仅在最大字段中起作用)。