Как внедрить пользовательский элемент управления в установщик WIX?

#windows #installation #wix

#Windows #установка #wix

Вопрос:

Можно ли как-нибудь встроить usercontrol в установщик WIX?

Мы пытаемся заменить установщик InstallShield установщиком WIX, однако есть пара задействованных пользовательских элементов управления, которые внедряет установщик InstallShield, которые было бы проще использовать повторно, чем повторно внедрять.

Ответ №1:

Насколько я знаю, невозможно встроить пользовательские элементы управления в установщики Wix. Это потому, что Wix просто выводит стандартный MSI-файл установщика Windows, который поддерживает только ограниченные типы элементов управления.

С учетом сказанного, возможно, вам захочется обратить внимание на Burn, новинку в наборе инструментов Wix, ожидаемую в конце этого года, которая, вероятно, будет включать поддержку пользовательских интерфейсов поверх установщиков Windows.

Ответ №2:

Ничто не мешает вам создать пользовательское действие, отображающее форму, и запустить это пользовательское действие при нажатии кнопки.

Я с большим успехом использовал этот подход для реализации «элементов управления выбора». Например, у вас есть текстовое поле с кнопкой рядом с ним, и при нажатии на кнопку отображается стандартное диалоговое окно AD «найти пользователя».

Или создайте форму, которая использует SMO для перечисления всех SQL-серверов в сети и позволяет пользователю выбрать один (а затем перечислить базы данных на сервере, чтобы они могли выбрать).

Таким образом, вы могли бы создать пользовательское действие, отображающее форму, а затем разместить свой пользовательский элемент управления в форме.

При этом, я с большим нетерпением жду выхода Burn.

Ответ №3:

Пока вы можете ждать записи (как упоминалось в других ответах), вы также можете проверить мою программу под названием SharpSetup — она позволяет вам создавать логику установки с использованием WiX (файлы, папки, записи реестра и т.д.), Но создавать весь пользовательский интерфейс с использованием WinForms. Это дает вам большую гибкость в том, какие элементы управления вы можете использовать (в основном все, что у вас есть на панели инструментов VS), включая пользовательские пользовательские элементы управления.