#wix #windows-installer
#wix #windows-установщик
Вопрос:
Моя установка wix 3.5 может быть загружена и запущена в обычной ситуации установки. Я также использую тот же msi для обновлений и вызываю msiexec
с /qb
помощью (базовый тихий интерфейс) из самого приложения.
До сих пор все в порядке. В обычных настройках у меня есть возможность запустить приложение после установки (взято из руководства) и работает нормально.
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT" Value="Start $(var.AppName) $(var.ExeVersion) now..." />
<Property Id="WixShellExecTarget" Value="[#$(var.AppName).exe]" />
<CustomAction Id="LaunchApplication" BinaryKey="WixCA" DllEntry="WixShellExec" Impersonate="yes" />
Я хочу, чтобы мое обновление было тихим и запускало обновленное приложение после успешной установки. Для этого у меня есть пользовательское действие, подобное этому, в моем InstallExecuteSequence
:
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize"/>
<Custom Action="LaunchApplication"
After="RemoveExistingProducts"/>
</InstallExecuteSequence>
Это тоже нормально, однако очевидно, что теперь мое приложение автоматически запускается с обычными настройками (не / qb). Чтобы преодолеть это, я полагаю, мне нужно определить, в каком UILevel
я нахожусь, и запустить пользовательское действие только в INSTALLUILEVEL_BASIC
.
Итак, вот мой вопрос: как я могу определить UILevel
в InstallExecuteSequence
или CustomAction
? Или есть способ запустить CustomAction только в тихом базовом режиме в Wix.
Ответ №1:
Вы должны обусловить пользовательское действие UILevel = 3
Комментарии:
1. Я знаю, но как мне точно настроить его на uilevel 3?
2. Вы можете указать условие в тексте элемента «Пользовательский».
3. спасибо за подсказку. Вот рабочий пример для справки: <Пользовательское действие =»LaunchApplication» After=»RemoveExistingProducts»>UILevel = 3</Пользовательский>