【问题标题】:How can I insert custom dialog before WelcomeDlg?如何在 WelcomeDlg 之前插入自定义对话框?
【发布时间】:2013-12-16 21:22:57
【问题描述】:

我想让用户在启动 WiX 中的欢迎对话框之前选择语言,以便安装程序可以为每种语言安装不同的功能。

到目前为止,我已经创建了自己的包含 ComboBox 的自定义对话框,我知道如何在任何其他对话框之间插入自定义对话框,但我不知道如何在 WelcomeDlg 之前插入它。

【问题讨论】:

    标签: installation wix windows-installer package


    【解决方案1】:

    我没有做过,但我相信很容易做到:

    在 WelcomeDlg 的底部,您应该会看到:

      <InstallUISequence>
        <Show Dialog="WelcomeDlg" After="CostFinalize" Overridable="yes">NOT Installed OR PATCH</Show>
      </InstallUISequence>  
    

    这允许您覆盖对话序列。安排您的自定义对话框在 CostFinalize 之后和 WelcomeDlg 之前运行。我没有对此进行测试,但应该很容易完成。

      <InstallUISequence>
        <Show Dialog="CustomDlg" After="CostFinalize">NOT Installed OR PATCH</Show>
        <Show Dialog="CustomDlg" Before="WelcomeDlg">NOT Installed OR PATCH</Show>
      </InstallUISequence>  
    

    【讨论】:

    • 当我尝试按照您的建议将代码放入自定义 UI 页面时,出现以下错误。 E:\delivery\Dev\wix37_public\src\ext\UIExtension\wixlib\WixUI_Advanced.wxs(35) : error LGHT0094 : Unresolved reference to symbol 'Property:ApplicationFolderName ' in section 'Fragment:'. E:\delivery\Dev\wix37_public\src\ext\UIExtension\wixlib\InstallScopeDlg.wxs(20) : error LGHT0094 : Unresolved reference to symbol 'Property:WixAppFolder' in sec tion 'Fragment:'. 当我尝试使用 BeforeAfter 时似乎出现问题
    • 其实我发现只有第一个命令&lt;Show Dialog="CustomDlg" After="CostFinalize"&gt;NOT Installed OR PATCH&lt;/Show&gt;就够了。谢谢!
    • 我的错,只有第一行把序列弄乱了,如果我只使用第一行,序列就像CustomDlg &gt; WelcomeDlg &gt; VerifyDlg &gt; WelcomDlg &gt; VerifyDlg &gt; InstallDlg &gt; ExitDlg 假设我按下安装按钮它会弹出WelcomeDlg再次。你能帮帮我吗?
    • 创建您自己的欢迎对话框 - 只需从 WIX 对话框中获取代码并在末尾取出 &lt;InstallUISequence&gt; &lt;Show Dialog="WelcomeDlg" After="CostFinalize" Overridable="yes"&gt;NOT Installed OR PATCH&lt;/Show&gt; &lt;/InstallUISequence&gt; ,然后将您的后退和下一步按钮连接到正确的对话框即可解决问题。
    • 似乎我在尝试运行&lt;Show Dialog="MyCustomDlg" Before="WelcomeDlg" &gt;NOT Installed OR PATCH&lt;/Show&gt;时遇到问题,它说error LGHT0094 : Unresolved reference to symbol WixAction:InstallUISequence/WelcomeDlg' in section 'Fragment:'.
    【解决方案2】:

    尝试使用序列属性:

    <InstallUISequence>
        <Show Dialog="SplashDlg" Sequence="1" >NOT Installed OR PATCH</Show>
    </InstallUISequence>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-26
      • 1970-01-01
      • 2014-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多