如何在WiX中创建用户输入的自定义对话框?

Sco*_*aad 27 installer wix

我正在使用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" />
Run Code Online (Sandbox Code Playgroud)

NAME_PASSED_FROM_DIALOG是我想要连接到自定义对话框的东西,该对话框被创建并显示给安装服务的人员,以便他们可以设置/修改服务名称.我认为这与设置并传递给WixUI_InstallDir对话框的WIXUI_INSTALLDIR属性非常相似.

我的问题是:

如何创建可以接受传递到安装程序运行时的用户输入的自定义UI对话框?

Dar*_*opp 29

用UI玩得开心!

编辑:要回答的原始链接不再存在.FireGiant(Wix的维护者)对于这个过程的一部分有一些例子,但它并没有完全回答这个问题.还有一个教程(UPDATE Aug.2018:从Wayback Machine重新启动的链接),它大部分都是回答这个问题.

对将要发生的事情的高级概述是:

  1. 创建一个属性
  2. 让UI控件设置此属性
  3. 服务上的name属性将引用该属性,即[ServiceNameProperty].

但是这很复杂,建议创建新UI对话框的方法是使用现有对话框,复制它,然后使用新文本,控件进行编辑,并使用它来填充属性.

  • 是的,我强烈建议复制一个有点像你想要的现有对话框并从中调整.恕我直言,比从头开始构建要容易得多. (10认同)
  • 答案的链接已经死了,在点击网站后我发现了这里的教程:http://wix.tramontana.co.hu/tutorial/user-interface-revisited (2认同)
  • 仅供参考,该教程没有举例说明如何执行答案中提到的内容.它不创建属性,没有UI设置属性,也没有提到将引用该属性的服务.也许这些文献存在于2009年,但2016年没有任何内容. (2认同)

And*_*kov 9

尝试使用 WixEdit ,它是创建UI的好工具