Последовательность пользовательских действий в WiX перед "LaunchConditions"
Можно ли упорядочить пользовательское действие перед "LaunchConditions"?
Это мое пользовательское действие:
<CustomAction
Id="CA_vcAppRunning"
BinaryKey="vcShowMsg"
DllEntry="IsAppRunning"
Return="check"
Execute="immediate"/>
Последовательность в <InstallExecuteSequence/>
<Custom Action="CA_vcAppRunning" Before="LaunchConditions" />
Я попробовал это, открыл файл MSI в Orca и обнаружил, что мое настраиваемое действие упорядочено в "99". Но когда я пытался установить, он никогда не звонил.
Я хочу запланировать это до LaunchConditions, поскольку предполагается, что это настраиваемое действие устанавливает свойство, которое используется в LaunchCondition (если приложение запущено, выйдите из установщика / программы обновления).
1 ответ
Не планируйте это раньше LaunchConditions
запланировать это после FindRelatedProducts
а затем добавьте второе настраиваемое действие, которое блокирует установку на основе результатов вашего первого ЦС.
Это тот же метод, который используется для предотвращения понижения во многих руководствах, например
<CustomAction Id="CA_BlockOlderVersionInstall" Error="!(loc.LaunchCondition_LaterVersion)" />
<InstallExecuteSequence>
<LaunchConditions After="AppSearch" />
<Custom Action="CA_BlockOlderVersionInstall" After="FindRelatedProducts">
<![CDATA[NEWERVERSIONDETECTED]]>
</Custom>
</InstallExecuteSequence>
<InstallUISequence>
<LaunchConditions After="AppSearch" />
<Custom Action="CA_BlockOlderVersionInstall" After="FindRelatedProducts">
<![CDATA[NEWERVERSIONDETECTED]]>
</Custom>
</InstallUISequence>