【问题标题】:`<Show Dialog="CustomTextA" OnExit="success" />` does not work`<Show Dialog="CustomTextA" OnExit="success" />` 不起作用
【发布时间】:2019-11-06 15:17:09
【问题描述】:

我的wxs 文件中有以下代码:

  <UI>
      <Dialog Id="CustomTextA"
              Width="370"
              Height="270"
              Title="$(loc.InstallDirDlg_Title)">
          <Control Id="NextButton"
                   Type="PushButton"
                   X="236"
                   Y="243"
                   Width="56"
                   Height="17"
                   Default="yes"
                   Text="$(loc.WixUINext)">
              <Publish Event="EndDialog"
                       Value="Return"><![CDATA[CustomTextA_NextArgs=""]]></Publish>
              <Publish Event="NewDialog"
                       Value="[CustomTextA_NextArgs]"><![CDATA[CustomTextA_NextArgs<>""]]></Publish>
          </Control>
          ....
      </Dialog>

      <InstallUISequence>
          <Custom Action="CustomTextA_SetProperty_EDIT2"
                  After="CustomTextA_SetProperty_EDIT1" />
          <Custom Action="CustomTextA_SetProperty_EDIT1"
                  After="ValidateProductID" />
          <Custom Action="CustomTextA_SetProperty_EDIT3"
                  After="CustomTextA_SetProperty_EDIT2" />
          <Custom Action="CustomTextA_SetProperty_EDIT4"
                  After="CustomTextA_SetProperty_EDIT3" />

          <Custom Action="ERRCA_UIANDADVERTISED"
                  Before="AppSearch"><![CDATA[ProductState=1]]></Custom>

          <Show Dialog="CustomTextA"
                OnExit="success" />
      </InstallUISequence>

      <AdminUISequence>
          <Show Dialog="CustomTextA"
                OnExit="success" />
      </AdminUISequence>
  </UI>

但安装成功时不会显示CustomTextA对话框,而是显示标准ExitDialog

代码有什么问题?

我不确定像Custom Action="CustomTextA_SetProperty_EDIT2" 这样的海关行动是为了什么,但我让他们按原样提供代码。

Wix 版本是 3.11(从早期的 Wix 版本升级后可能出现问题)。

【问题讨论】:

    标签: wix


    【解决方案1】:

    总结:请尝试download the sample below 并在 Visual Studio 中查看。另请阅读下面的分步说明,了解如何将其用作模板。我会在 WixUI_MyMondo.wxs 文件中收集所有 GUI 标记。 请务必浏览之前链接的答案


    WiX 自定义对话框示例:我有一个 WiX custom GUI sample here(只需单击下载)。这是一种 "Hello WiX" 之类的东西 - 旨在尽可能简单,但不会更简单。换句话说,它只是做了几件事。

    • 它复制文件WixUI_Mondo.wxs 中的标准WiX 对话框源标记并调用新文件WixUI_MyMondo.wxs。它放在 Product.wxs 旁边。
    • Product.wxs 文件随后包含带有 &lt;UIRef Id="WixUI_MyMondo" /&gt; 的自定义版本(而不是标准的 &lt;UIRef Id="WixUI_Mondo" /&gt;),允许WixUI_MyMondo.wxs 文件可根据需要进行更改。
    • 其余对话框链接自 WixUIExtension.dll 文件(正常)。
    • 我始终将所有对话框事件和配置保存在 WixUI_MyMondo.wxs 中 - 这意味着我会尽量避免在 Product.wxs 中构建对话框结构。

    请下载并检查示例。据我所知,不可能从您提供的标记中推断出更多信息。


    以前的答案:这里是关于 WiX GUI 问题的两个以前的答案。与其以可能错过您真正问题的方式重写内容,不如略读它们好吗?


    链接:这里有一些关于设置 GUI 的进一步链接。 Burn 是 WiX 的 setup.exe 生成器。它可以有自己的 GUI,与嵌入在 MSI 文件中的 GUI 分开。

    【讨论】:

    • 我下载了示例,但没有找到OnExit。此示例有何帮助?
    • 我刚拿到这个样本。这个想法是您可以尝试使用它,因为它可以编译并且具有易于理解的结构。另一个技巧是在 github.com 上搜索类似的结构。 Here is a sample search。目前无法测试任何内容。
    猜你喜欢
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-03
    • 1970-01-01
    相关资源
    最近更新 更多