Обнаружение крупных обновлений из InstallShield InstallScript - PullRequest
0 голосов
/ 25 июня 2019

У меня есть проект MSI IS 2018 InstallScript.Я внес изменения в представление обновления и добавил элемент обновления для поддержки автоматических основных обновлений.

Вопрос в том, как определить в сценарии установки, будет ли установка выполнять значительное обновление.

Точнее говоря, в файле .Rul сценария установки в функции OnFirstUIBefore я хочу знать, будет ли установка продолжаться с «Major Upgrade» или нет, и на основании этого я хочу выполнить определенные задачи установки.

Есть ли какое-либо свойство InstallShield InstallScript, которое я могу проверить, чтобы увидеть, будет ли выполнено «Основное обновление»?

заранее спасибо.

1 Ответ

0 голосов
/ 26 июня 2019

Вы можете использовать MsiGetProperty , чтобы получить либо IS_MAJOR_UPGRADE , либо свойство, указанное в элементе основного обновления.Если полученное вами значение не пустое, соответствующий продукт был найден, и ваша установка заменит его.(Предполагая, что вы не установили свойство основного элемента обновления только для обнаружения.)

Обратите внимание, что в отличие от связанного примера вам нужно будет ссылаться на ISMSI_HANDLE вместо hMSI для доступа к WindowsДескриптор установщика из OnFirstUIBefore, так как события не получают дескриптор в качестве аргумента.

Вы также можете проверить UPGRADINGPRODUCTCODE , но это для связанного сценария, в котором текущий продукт удаляется, потому чтоего заменяет серьезное обновление.

...