Installshield:是否可以在MSI Upgrade表中使用ProductVersion属性?

时间:2013-02-13 07:55:20

标签: installshield

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

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

1 个答案:

答案 0 :(得分:7)

新项目应包含两个旨在表现得像您描述的记录。但是,它们不应该存储实际的产品版本,而应该有一个标记令牌,例如***ALL_VERSIONS***(抱歉,我现在不在我的InstallShield副本附近)。此令牌的名称并不好,因为实际发生的是当前的ProductVersion在构建时替换它。

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