【问题标题】:How do I create a custom dialog in WiX for user input?如何在 WiX 中为用户输入创建自定义对话框?
【发布时间】:2009-04-24 22:31:18
【问题描述】:

我正在使用 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 对话框来接受传递到安装程序运行时的用户输入?

【问题讨论】:

  • 如何在 ProjectInstaller 安装方法中使用 savedState 字典。

标签: installation wix


【解决方案1】:

玩得开心!

编辑:答案的原始链接不再存在。 FireGiant(Wix 的维护者)some examples 是这个过程的一部分,但它并没有完全回答这个问题。 is one further tutorial(UPDATE Aug.2018:Link resurrected from Wayback Machine)确实可以回答这个问题。

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

  1. 创建属性
  2. 让 UI 控件设置此属性
  3. 服务上的名称属性将引用属性,即[ServiceNameProperty]。

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

【讨论】:

  • 是的,我强烈建议复制一个与您想要的有点相似的现有对话框,然后从那里进行调整。恕我直言,这比从头开始构建要容易得多。
  • Answer 的链接已失效,在网站上单击了一下后,我在这里找到了教程:wix.tramontana.co.hu/tutorial/user-interface-revisited
  • 仅供参考,该教程没有举例说明如何执行答案中提到的内容。它没有创建属性,没有 UI 设置属性,也没有提及将引用该属性的服务。也许文学在 2009 年就有了,但在 2016 年什么都没有。
  • @andy 链接已失效。
【解决方案2】:

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

【讨论】:

  • 一定要检查一下。 :)
  • 我遇到了一个问题,即在对话框中启用 RadioButtonGroup 后似乎禁用了文本输入字段。 WixEdit 让我立即看到 RadioButtonGroup 无形地覆盖了以下文本输入字段。非常感谢您提供的信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-28
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多