3

InstallShield MSI 安装的典型“升级表”包含两条记录:“从任何版本到当前都是升级”和“从当前到任何是降级”。这需要在每次主要、次要或内部版本号发生更改时手动复制粘贴“当前版本”号,这不是很好。

目前我正在使用一个脚本来解析 .ism 项目文件并在构建之前替换升级表中的版本号。但这是一个肮脏的黑客。也许可以在升级表中使用“ProductVersion”MSI 属性,所以产品版本只存储这个属性中?我尝试以多种方式输入此属性名称,例如[ProductVersion]or ##ProductVersion##,但没有任何帮助 - 它没有被属性值替换,并且生成的 MSI 包含“##ProductVersion##”文本而不是“1.30.1264”属性值。

4

1 回答 1

7

一个新项目应包含两条记录,旨在按照您的描述行事。但是,它们不应存储实际的产品版本,而应具有标记令牌,例如***ALL_VERSIONS***(抱歉,我现在不在我的 InstallShield 副本附近)。这个令牌的名字不是很好,因为真正发生的是当前 ProductVersion 在构建时替换它。

如果您已经将令牌更改为实际版本,则可以通过选择引用“我的版本”而不是实际版本的单选按钮,使用“友好”视图将其更改回。或者,您可以创建一个新项目来查看它,然后将其复制进去。令牌在所有最新版本的 InstallShield 中都可以在最小或最大字段中使用(但在某些旧版本中仅在最大字段中)。

于 2013-02-13T13:12:49.387 回答