Показать и включить текст и кнопку перезагрузки после цепочки загрузчика WiX

По сути, я хочу, чтобы пользователь мог легко перезагрузить свою машину после завершения цепочки установки. Простое использование <ExitCode ... после последнего элемента цепочки для меня не вариант, потому что я не хочу заставлять пользователя перезапускаться, а мой последний элемент - MsiPackage, я просто хочу дать пользователю опцию для перезагрузка, очень быстро.

Конечно, я мог бы реализовать эту функцию в самом Msi, но я также нашел это в файле темы загрузчика:

<Page Name="Success">
    <Text X="186"
                Y="80"
                Width="-11"
                Height="30"
                FontId="2"
                DisablePrefix="yes">#(loc.SuccessHeader)</Text>
    <Button Name="LaunchButton"
                    X="-91"
                    Y="-11"
                    Width="75"
                    Height="23"
                    TabStop="yes"
                    FontId="0"
                    HideWhenDisabled="yes">#(loc.SuccessLaunchButton)</Button>
    <Text Name="SuccessRestartText"
                X="186"
                Y="-51"
                Width="-11"
                Height="32"
                FontId="3"
                DisablePrefix="yes"
                HideWhenDisabled="yes">#(loc.SuccessRestartText)</Text>
    <Button Name="SuccessRestartButton"
                    X="-116"
                    Y="-11"
                    Width="100"
                    Height="23"
                    TabStop="yes"
                    FontId="0"
                    HideWhenDisabled="yes">#(loc.SuccessRestartButton)</Button>
    <Button Name="SuccessCancelButton"
                    X="-11"
                    Y="-11"
                    Width="100"
                    Height="23"
                    TabStop="yes"
                    FontId="0">#(loc.SuccessCloseButton)</Button>
</Page>

Видите ли, есть RestartText и RestartButton. При удалении HideWhenDisabled я мог видеть элементы после установки, но они все еще явно отключены.

Хотя в файле wxs есть тег SupressRepair в узле bal:WixStandardBootstrapperApplication для отключения и скрытия кнопки и функции восстановления, должна быть даже какая-либо опция для включения текста, кнопки и функции перезагрузки.

Я не мог определить, где это установить. Итак, как я могу включить текст и кнопку перезагрузки после настройки в приложении начальной загрузки.

Спасибо за совет.


person Martin Braun    schedule 11.12.2013    source источник


Ответы (1)


Очевидно, мое решение было очень простым и могло быть обнаружено мной при попытке перезагрузки после установки MSI:

Когда вы сообщаете пакету MSI о перезагрузке после успешной установки, применяя

<InstallExecuteSequence>
    <ScheduleReboot After="InstallFinalize"/>
</InstallExecuteSequence>

к моему файлу wxs моего проекта MSI это не приведет к перезапуску MSI после установки в цепочке установки. Вместо этого он даст загрузчику любой код возврата, поэтому он активирует мой текст перезагрузки и кнопку в конце всей цепочки установки.

Я не ожидал, что загрузчик настолько умен. Ницца!

person Martin Braun    schedule 11.12.2013