Отмена MSI без отображения диалогового окна "Установка прервана"
Мне интересно, возможно ли, чтобы кнопка "Отмена" на моем экране приветствия полностью вышла из программы установки, не показывая окончательный диалог "установка прервана". Я считаю это излишним, когда пользователь еще даже не начал установку.
Я по-прежнему хочу, чтобы диалоговое окно отображалось, если пользователь отменяет установку, которая уже была запущена , но не в том случае, если установка не была запущена (что имеет место, если кнопка отмены нажата на приветствии экран).
Я пробовал разные вещи, но мне не хватает правильного понимания того, как работает установщик Windows, чтобы понять решение.
Обновление: получил его на работу! В итоге я использовал комбинацию из двух предложений-я хотел бы дать вам оба ответа, но я дам его Рэю, так как у него самая низкая репутация. Вот как я это сделал (я до сих пор удивлен, что это работает):
Я использовал элемент Publish, как предложил Рэй, но вместо вызова события (нет события под названием "Finish"), я установил свойство "AbortInstall" в 1:
<Publish Dialog="SimpleDlg"
Control="Cancel"
Property="AbortInstall"
Value="1">1</Publish>
Я сделал это в своем файле пользовательского набора WixUI_Simple.wxs под Wix / Fragment / UI
Затем, внутри UserExit.wxs I изменил Последовательность установки следующим образом:
<InstallUISequence>
<Show Dialog="Simple_UserExit"
OnExit="cancel">NOT AbortInstall = 1</Show>
</InstallUISequence>
...именно эту идею предложил Кристофер.
Спасибо вам обоим!
3 ответов:
Я не проверял это, так что это может не сработать ни в малейшей степени, но какого черта.
Вы, вероятно, можете создать элемент Publish для WelcomeDlg на элементе управления Cancel button следующим образом:
<Publish Dialog="WelcomeDlg" Control="Cancel" Event="Finish" Value="Exit">1</Publish>Дайте мне знать, как это происходит:)
Взгляните на таблицу InstallUISequence:
Http://msdn.microsoft.com/en-us/library/aa369543 (VS.85).aspx
Обратите внимание на специальные диалоги с последовательностью -1, -2 и -3. Обратите внимание, что вы также можете поставить условие для диалоговых окон. С небольшим creatavity вы можете использовать свойство в качестве флага, чтобы определить, действительно ли ваша установка началась и предотвратить или показать диалог, о котором идет речь.
Просто FYI & fun.
Как скрыть Диалог выхода в wix :
В вашем обычае WixUI_xxxxx.wxs под<UI>место тега<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return">1</Publish> <Publish Dialog="MyNewDlg" Control="Ok" Event="EndDialog" Value="Return" Order="1">1</Publish>Под тегом
<Product>вставить:<Property Id="ExitSuccess" Value="1" />И
<InstallUISequence> <Show Dialog="MyNewDlg" After="SomeAction">Installed</Show> <Show Dialog="ExitDialog" OnExit="success">NOT ExitSuccess = 1</Show> </InstallUISequence>Вот и все.
Comments