Я использую Wix 3.8.
Сначала я создаю установщик (.msi), который выполняет настраиваемое действие во время процесса установки (для целей тестирования он показывает только сообщение):
Элемент продукта:
<Product Id="PUT-GUID-HERE" Name="MyProduct"
Version="1.0.1.100" Manufacturer="Foobar Company"
UpgradeCode="PUT-GUID-HERE">
Пользовательское действие
<CustomAction Id="Message1" Script="vbscript">
<![CDATA[
MsgBox("First Install?")
]]>
</CustomAction>
<InstallExecuteSequence>
<Custom Action="Message1"
Before="InstallInitialize">NOT Installed AND NOT REMOVE</Custom>
Теперь, когда я запускаю свой файл .msi, в моей установке будет отображаться сообщение:
Затем я изменяю код продукта и увеличиваю номер версии, чтобы создать обновление:
Элемент продукта:
<Product Id="PUT-GUID-HERE"
Name="MyProduct" Version="1.0.2.100"
Manufacturer="Foobar Company"
UpgradeCode="PUT-GUID-HERE">
Что касается условия NOT Installed AND NOT REMOVE
, я ожидаю, что окно сообщения не появится, когда я выполню обновление. Но это действительно так:
Каково правильное условие для настраиваемого действия, которое будет выполняться только при установке, но не при обновлении?