Отмените MSI, не показывая диалоговое окно «установка прервана» - PullRequest
4 голосов
/ 22 июля 2010

Мне интересно, возможно ли, чтобы кнопка «Отмена» на моем экране приветствия полностью вышла из установщика, не показывая окончательное диалоговое окно «Установка прервана».Я считаю это избыточным, когда пользователь еще даже не начал установку.

Я все еще хочу, чтобы диалоговое окно отображалось, если пользователь отменяет установку, которая уже запущена , но неесли установка не была запущена (что происходит в случае нажатия кнопки «Отмена» на экране приветствия).

Я пробовал разные вещи, но мне не хватает понимания того, как работает установщик Windows, чтобы понятьрешение.

Обновление: Получил работу!Я закончил тем, что использовал комбинацию из двух предложений - я хотел бы дать вам оба ответа, но я передам его Рэю, так как у него самая низкая репутация.Но я буду голосовать за них обоих.Вот как я это сделал (я все еще удивлен, что это работает):

Я использовал элемент Publish, как предложил Ray, но вместо вызова события (нет события с именем «Finish»), я установилсвойство, "AbortInstall" для 1:

<Publish Dialog="SimpleDlg"
                    Control="Cancel"
                    Property="AbortInstall"
                    Value="1">1</Publish>

Я сделал это в моем файле пользовательского набора WixUI_Simple.wxs в Wix / Fragment / UI

Затем внутри UserExit.wxs Iизменил последовательность InstallUIS следующим образом:

<InstallUISequence>
            <Show Dialog="Simple_UserExit"
                    OnExit="cancel">NOT AbortInstall = 1</Show>
        </InstallUISequence>

... это идея, предложенная Кристофером.

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

Ответы [ 3 ]

3 голосов
/ 22 июля 2010

Посмотрите на таблицу InstallUISequence:

http://msdn.microsoft.com/en-us/library/aa369543(VS.85).aspx

Обратите внимание на специальные диалоги с последовательностью -1, -2 и -3.Обратите внимание, что вы также можете поставить условие в диалогах.С небольшим творческим потенциалом вы можете использовать свойство в качестве флага, чтобы определить, действительно ли когда-либо началась ваша установка, и запретить или показать соответствующее диалоговое окно.

1 голос
/ 29 июня 2013

Просто к сведению и веселья.
Как скрыть диалоговое окно выхода в :
В вашем пользовательском 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>

Вот и все.

1 голос
/ 22 июля 2010

Я не проверял это, так что оно может работать не из-за малейшего, но какого черта.

Вы, вероятно, можете создать элемент Publish для WelcomeDlg с помощью кнопки «Отмена» следующим образом:

<Publish Dialog="WelcomeDlg" Control="Cancel" Event="Finish" Value="Exit">1</Publish>

Дайте мне знать, как это происходит:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...