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

Installation 如何在WiX中为用户输入创建自定义对话框?,installation,wix,Installation,Wix,我正在使用WiX为windows服务创建安装程序。在服务中安装和显示的服务名称最好在安装时可配置 例如,这就是我的想法(wix xml snip): 名称\u从\u对话框传递\u是我想连接到一个自定义对话框的东西,该对话框将被创建并显示给安装服务的人员,以便他们可以设置/修改服务名称。我认为这与设置并传递给WIXUI\u INSTALLDIR对话框集的WIXUI\u INSTALLDIR属性非常相似 我的问题是: 如何创建一个自定义UI对话框,以接受用户输入,并将其传递到安装程序的运行时?享

我正在使用WiX为windows服务创建安装程序。在服务中安装和显示的服务名称最好在安装时可配置

例如,这就是我的想法(wix xml snip):


名称\u从\u对话框传递\u是我想连接到一个自定义对话框的东西,该对话框将被创建并显示给安装服务的人员,以便他们可以设置/修改服务名称。我认为这与设置并传递给WIXUI\u INSTALLDIR对话框集的WIXUI\u INSTALLDIR属性非常相似

我的问题是:

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

享受UI带来的乐趣

编辑:答案的原始链接不再存在。FireGiant(Wix的维护者)是这个过程的一部分,但它并没有完全回答这个问题。有(2018年8月更新:链接从Wayback机器中恢复)确实在很大程度上回答了这个问题

将要发生的事情的高层次概述如下:

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

    尝试使用
    这是一个很好的创建UI的工具

    是的,我强烈建议复制一个与您想要的有点相似的现有对话框,并从中进行调整。比从头开始构建要容易得多,IMHO.Answer的链接已经失效,在点击网站后,我在这里找到了教程:仅供参考,该教程没有给出如何执行答案中提到的内容的示例。它没有创建属性,没有让UI设置属性,也没有提到将引用该属性的服务。也许这些文献存在于2009年,但在2016年却什么都没有。@andy链接已经死了。我们一定要看看这个。:)我有一个问题,在对话框中启用RadioButtonGroup似乎会禁用它后面的文本输入字段。WixEdit允许我立即看到RadioButtonGroup不可见地覆盖了以下文本输入字段。非常感谢您提供的信息。这里有一个在ProjectInstaller安装方法中使用savedState dict的好例子。
    <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" />