Последовательность пользовательских действий в 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>
Другие вопросы по тегам