Отмена 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>


...именно эту идею предложил Кристофер.



Спасибо вам обоим!

464   3  

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

    Ничего не найдено.