Обнаружение MajorUpgrade в Wix 3.8
Я устанавливаю все новые версии моего программного обеспечения в качестве основных обновлений, так как установки очень малы, и в большинстве случаев все файлы меняются в любом случае.
Я хотел бы пропустить одно диалоговое окно в установщике, если обновление по сравнению с новой установкой выполнено, но до сих пор я не смог выяснить, какое условное (например, "Installed AND PATCH") использовать в следующем примере.
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog"
Value="WelcomeDlg" Order="2">Installed AND PATCH</Publish>
2 ответа
Вам нужно показать нам ваш основной элемент обновления или элементы обновления в WiX для получения подробной информации, но способ, которым вы обнаруживаете, что вы делаете обновление, заключается в использовании имени свойства обновления. Иногда это имя PREVIOUSVERSIONSINSTALLED, но если вы использовали элементы MajorUpgrade, оно устанавливает свойство WIX_UPGRADE_DETECTED.
http://wixtoolset.org/documentation/manual/v3/xsd/wix/majorupgrade.html
Это означает, что условие в вашем диалоге будет:
Не WIX_UPGRADE_DETECTED
если вы хотите подавить диалог. Вы не хотите патч, потому что вы ничего не делаете, связанные с патчами.
Вы можете определить серьезное обновление по специальному свойству UPGRADINGPRODUCTCODE.
Перечисленное условие: (Установлено И ПАТЧ) должно отображать диалог только во время установки патча?
Проверьте этот шпаргалку условий MSI от Installshield. Это не полный, но лучше, чем ничего.