Как получить ProductVersion предыдущей установки во время обновления в InstallShield - PullRequest
1 голос
/ 01 октября 2010

У меня есть проект BasicMsi в InstallShield. Я хочу иметь возможность обновить это приложение, однако не могу найти переменную InstallShield, которая возвращает количество уже установленных ProductVersion, я знаю, что могу обработать эту версию вручную, используя узел обновления и определяя набор правил, однако сейчас я ищу самое простое решение. Я хочу использовать этот номер версии в коде, чтобы использовать инструмент, основанный на этом значении.

Я хочу иметь возможность обновиться до текущей версии, не только с предыдущей версии (например, 3.0.2), но и с более ранних (2.1.0, 1.0.0 и т. Д.).

1 Ответ

2 голосов
/ 01 октября 2010

Если мы говорим об основных обновлениях, ваш ActionProperty, определенный в таблице обновлений, будет иметь код продукта после выполнения FindRelatedProducts. Существует также UPGRADINGPRODUCTCODE, который устанавливается RemoveExistingProducts.

Я не знаю другого встроенного механизма для разрешения ProductVersion обновляемого продукта. Вам нужно написать пользовательское действие для запроса MSI API на основе вашего ProductCode / UpgradeCode, чтобы получить эту информацию.

Альтернативой может быть запись значения реестра во время первой установки (или, возможно, даже использование того, что уже сохранено в разделе «Установка и удаление программ»), а затем использование комбинированного списка AppSearch / Reglocator для извлечения его в свойство.

...