WIX-пользовательские действия при установке, но не при удалении или обновлении

У меня есть установщик wix, где у нас есть несколько пользовательских действий, таких как регистрация и т. д. Однако мы хотим, чтобы они запускались только при установке, а не при обновлении или удалении.

Я попытался установить его не установлен и переустановить, но это тоже не работает.

кто-нибудь знает, что такое правильное свойство, когда вы хотите запускать определенные приложения с помощью пользовательских действий только при установке, а не при обновлении или удалении?

 <InstallExecuteSequence>
     <Custom Action="PosConfig.CustomAction" Before="StartServices"><![CDATA[NOT Installed AND NOT UPGRADINGPRODUCTCODE AND UILevel>3]]></Custom>
     <Custom Action="Register.CustomAction" After="PosConfig.CustomAction">NOT Installed AND NOT UPGRADINGPRODUCTCODE </Custom>
     <Custom Action="OPOSSelectorFirst.CustomAction" After="Register.CustomAction"><![CDATA[NOT Installed AND NOT UPGRADINGPRODUCTCODE AND &ProductFeature=3 AND Not OPOSDLLINSTALLED]]></Custom>
     <Custom Action="OPOSSelectorUpdate.CustomAction" After="OPOSSelectorFirst.CustomAction"><![CDATA[NOT Installed AND NOT UPGRADINGPRODUCTCODE AND &ProductFeature=3 AND Not OPOSDLLINSTALLED]]></Custom>
  </InstallExecuteSequence>

правка: добавил моя пользовательская последовательность действий.

2 ответов


NOT Installed AND REINSTALL никогда не может быть правдой одновременно. Это означает, что приложение не установлено, но в настоящее время вновь установлен. Как это работает?

запланируйте пользовательское действие, используя вместо этого следующее условие:

NOT Installed AND NOT UPGRADINGPRODUCTCODE

это предотвращает его срабатывание при крупных обновлениях.


UPGRADINGPRODUCTCODE в действие RemoveExistingProducts. В зависимости от вашего MajorUpgrade Schedule Это может быть слишком поздно. Я пришел к решению NOT Installed AND NOT WIX_UPGRADE_DETECTED.