Как создать пользовательский диалог в WiX для пользовательского ввода? - PullRequest
26 голосов
/ 25 апреля 2009

Я использую WiX для создания установщика для службы Windows. Желательно, чтобы имя службы, которая устанавливается и отображалась в Службах, можно было настраивать во время установки.

Например, вот что я думаю (wix xml snip):

<ServiceInstall 
    Id="MyServiceInstaller" 
    Name="NAME_PASSED_FROM_DIALOG" 
    Type="ownProcess" 
    Start="auto" 
    ErrorControl="normal" 
    Description="My Service" 
    Account="localsystem"/> 

<ServiceControl
    Id="StartMyServiceInstaller" 
    Name="NAME_PASSED_FROM_DIALOG" 
    Start="install"
    Wait="no" />

<ServiceControl
    Id="StopMyServiceInstaller" 
    Name="NAME_PASSED_FROM_DIALOG" 
    Remove="uninstall"
    Stop="both"
    Wait="yes" />

NAME_PASSED_FROM_DIALOG - это то, что я хотел бы подключить к настраиваемому диалоговому окну, которое создается и отображается для лица, устанавливающего службу, чтобы они могли установить / изменить имя службы. Я думаю, что это очень похоже на свойство WIXUI_INSTALLDIR, которое устанавливается и передается в диалоговый набор WixUI_InstallDir.

Мой вопрос:

Как создать диалоговое окно пользовательского интерфейса, которое может принимать пользовательский ввод, который передается во время выполнения программы установки?

Ответы [ 3 ]

29 голосов
/ 25 апреля 2009

Удачи с пользовательским интерфейсом!

Редактировать: исходная ссылка для ответа больше не существует. FireGiant (сопровождающий Wix) некоторые примеры для части этого процесса, но он не полностью отвечает на этот вопрос. есть еще один учебник ( ОБНОВЛЕНИЕ Авг. 2018 : ссылка воскрешена из Wayback Machine), которая в большинстве случаев отвечает на этот вопрос.

Общий обзор того, что будет происходить:

  1. Создать объект
  2. У этого элемента управления установлено свойство
  3. Атрибут имени в службе будет ссылаться на свойство, т.е. [ServiceNameProperty].

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

6 голосов
/ 15 июля 2013

Попробуйте использовать WixEdit это хороший инструмент для создания пользовательского интерфейса

4 голосов
/ 16 октября 2009

Проблема с использованием свойств для задания имени службы заключается в том, что при попытке удалить службу служба не может найти имя службы.

...