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

时间:2009-04-24 22:31:19

标签: 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" />

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

我的问题是:

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

3 个答案:

答案 0 :(得分:29)

享受UI乐趣!

编辑:要回答的原始链接不再存在。 FireGiant(Wix的维护者)some examples用于此过程的一部分,但它并没有完全回答这个问题。有is one further tutorial 2018年8月更新:从Wayback Machine重新启动的链接)确实可以回答这个问题。

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

  1. 创建属性
  2. 让UI控件设置此属性
  3. 服务上的name属性将引用该属性,即[ServiceNameProperty]。
  4. 然而,这很复杂,建议创建新UI对话框的方法是采用现有对话框,对其进行克隆,然后使用新文本,控件进行编辑,并使用它来填充属性。

答案 1 :(得分:6)

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

答案 2 :(得分:4)

使用属性设置服务名称时遇到的问题是,当您尝试卸载服务时,服务无法找到服务名称。

相关问题