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