WiX 中的新对话框,单击“后退”会跳过该对话框

2024-03-11

我是 WiX 的新手,正在尝试通过添加新的对话框来自定义对话框队列。新对话框的名称为 ServerChoice,流程为:

SetupTypeDlg 完整或典型 ServerChoice verifyReadyDlg

or

SetupTypeDlg 自定义 CustomizeDlg ServerChoice VerifyReadyDlg

唯一的问题是在VerifyReadyDlg 的第一种情况下。 “返回”将我带到 SetupTypeDlg 并跳过 ServerChoice,尽管在第二个流程中它按要求工作。

Source:

<UI>
        <DialogRef Id="ServerChoice" />
        <Publish Dialog="SetupTypeDlg" Control="TypicalButton" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="SetupTypeDlg" Control="CompleteButton" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="ServerChoice" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="ServerChoice">1</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">WixUI_InstallMode = "InstallCustom"</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="SetupTypeDlg" Order="2">WixUI_InstallMode = "InstallTypical" OR WixUI_InstallMode = "InstallComplete"</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="3">WixUI_InstallMode = "Change"</Publish>
        <Publish Dialog="ServerChoice" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="4">WixUI_InstallMode = "Repair" OR WixUI_InstallMode = "Remove"</Publish>
    </UI>

对新手有帮助吗? :)


您引用的是哪种类型的 UI(Mondo?)。此信息不存在于您的代码中。我认为爸爸的评论是正确的,您可能有多个后退按钮事件,因为 Mondo 本身在该按钮单击事件上挂钩了自己的“处理程序”。

我最近创建了一个自定义 UI 对话框流程,我的方法根本没有引用 WiXUI_Mondo。相反,我基于 Mondo 源代码创建了自己的新 UI(您必须检查 WiX 源代码)。最后我得到了这段代码(不相关的代码部分已被删除)并且它工作正常。

<Fragment>  
    <!-- this is based on the WixUI_Mondo dialog set -->
    <UI Id="WixUI_MyNewUI">
        <TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
        <TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
        <TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />

        <Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
        <Property Id="WixUI_Mode" Value="Mondo" />

        <DialogRef Id="ErrorDlg" />
        <DialogRef Id="FatalError" />
        <DialogRef Id="FilesInUse" />
        <DialogRef Id="MsiRMFilesInUse" />
        <DialogRef Id="PrepareDlg" />
        <DialogRef Id="ProgressDlg" />
        <DialogRef Id="ResumeDlg" />
        <DialogRef Id="UserExit" />

        <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg">1</Publish>
        <!-- we do not use the SetupTypeDlg which allows user to choose either Typical, Complete or Custom installation; this ensures InstallCustom schema is run -->
        <Publish Dialog="WelcomeDlg" Control="Next" Property="WixUI_InstallMode" Value="InstallCustom" Order="2">1</Publish>

        <Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">WixUI_InstallMode = "InstallCustom"</Publish>
        <Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="MyDlg1">1</Publish>

        <Publish Dialog="MyDlg1" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1">MY_CONDITION_PROPERTY = 0</Publish>
        <Publish Dialog="MyDlg1" Control="Next" Event="NewDialog" Value="MyDlg2" Order="2">MY_CONDITION_PROPERTY = 1</Publish>

        <Publish Dialog="MyDlg2" Control="Next" Event="NewDialog" Value="VerifyReadyDlg" Order="1" />
        <Publish Dialog="MyDlg2" Control="Back" Event="NewDialog" Value="MyDlg1">1</Publish>


        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MyDlg1" Order="1">WixUI_InstallMode = "InstallCustom" and MY_CONDITION_PROPERTY = 0</Publish>
        <Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MyDlg2" Order="2">WixUI_InstallMode = "InstallCustom" and MY_CONDITION_PROPERTY = 1</Publish>      
    </UI>

    <UIRef Id="WixUI_Common" />
    <UIRef Id="WixUI_ErrorProgressText" />
</Fragment>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WiX 中的新对话框,单击“后退”会跳过该对话框 的相关文章

  • 使用“Any CPU”而不是“X86”编译wix项目

    当我编译一个wix项目 并且wix通过MSbuild启动所有现有项目的编译时 我可以使用 任何CPU 而不是 X86 或 64位 吗 如果没有 我如何使用 任何CPU 编译项目 如果您的问题是是否可以编译 WIXPROJAny CPU那么答
  • Dialog中的事件和UI参数是什么

    jQuery 对话框中的事件和 UI 参数是什么 我可以使用它们获取鼠标位置吗 selector dialog open function event ui The event参数是DOM 事件对象 http www w3schools c
  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • Burn in WiX 3.6 如何将 MSI 文件捆绑到 .exe 中?

    我有兴趣了解 WiX 如何捆绑使用 Burn 创建的 EXE 文件 我知道创建一个自解压 EXE 文件非常简单 我已经完成了一百万次了WinRAR http en wikipedia org wiki WinRAR EXE 文件解压到哪个目
  • WPF 模式进度窗口

    如果这个问题已经被回答了很多次 我很抱歉 但我似乎找不到适合我的答案 我想创建一个模式窗口 在我的应用程序执行长时间运行的任务时显示各种进度消息 这些任务在单独的线程上运行 我能够在过程的不同阶段更新进度窗口上的文本 跨线程通信一切正常 问
  • 如何更改对话框的默认黑色暗淡背景“颜色”(而不是暗淡量)?

    这是随机显示的图像Dialog在网上找到的 我一直在实施一个自定义Dialog 我可以处理对话框上的几乎所有内容 除了对话框本身下方的默认黑色昏暗背景之外 但在其后面的整个屏幕上 基本上我想改变它color和阿尔法值 我一直在 StackO
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • 为什么我的单选按钮不起作用?

    我正在 Visual C 2005 中开发 MFC 对话框应用程序 我的单选按钮是 m Small m Medium 和 m Large 它们都没有在我的 m Summary 编辑框中显示应有的内容 可能出什么问题了 这是我的代码 Pizz
  • 如何创建带有两个日期选择器的自定义对话框?

    我刚刚开始学习 Android 作为一种爱好 我想创建一个带有两个日期选择器的对话框 final Dialog dialog new Dialog this dialog setContentView R layout data picke
  • Windows 窗体中的提示对话框

    我在用System Windows Forms但奇怪的是没有能力创造它们 如何在没有 javascript 的情况下获得类似 javascript 提示对话框的内容 MessageBox 很好 但是用户无法输入内容 我希望用户输入任何可能的
  • oracle apex从pl/sql代码重定向到模式对话框页面

    我的顶点页面中有一个页面进程 我想在页面处理完成后重定向到模式对话框页面 所以我写了代码 htp init owa util redirect url f p APP ID 34 APP SESSION NO 34 P34 CODE P34
  • 对话框片段嵌入取决于设备

    在我的应用程序中 用户从联系人或通话记录中选择电话号码 选择联系人非常简单 并且在手机和平 板电脑上都可以很好地工作 i e 在手机上会弹出新的全屏活动 在桌子上我会看到带有联系人列表的漂亮弹出对话框 似乎无法从通话记录中选择电话号码 因此
  • Primefaces 对话框打开后更新

    我想在打开 primefaces 对话框后更新内容 是否可以 我的示例代码如下
  • WiX - 提交多个属性以推迟自定义操作

    我的 WiX 安装程序在处理延迟 立即自定义操作时遇到问题 请原谅我的英语 我想将用户输入的一些属性交给延迟的自定义操作 我知道我需要立即自定义操作和 CustomActionData 来执行此操作 我就是这样实现的 二进制
  • 安装一系列嵌入式 MSI 软件包,每个软件包都使用嵌入式 UI - 显示通用进度条

    我正在使用 Windows Installer 4 5 新功能和 WiX 来生成MSI http en wikipedia org wiki Windows Installer包 我创建了一个 MSI 链安装 以便将其他 MSI 包的集合作
  • ANDROID:如何从所有窗口顶部的通知或长按搜索按钮启动弹出对话框?

    我已经搜索过 一切都是关于启动活动而不是对话框 我想要做的是在状态栏中显示通知 当用户按下它时 在用户单击通知之前正在查看的内容之上会弹出一个对话框 我不希望对话框显示在主要活动或最近的应用程序列表的顶部 另外 如何通过长按搜索按钮启动对话
  • WIX Heat.exe 命令参数 -var 不接受空格?

    我有这个使用所有不变路径的 WIX 命令 并且它不需要系统环境 与此示例不同 http weblogs sqlteam com mladenp archive 2010 02 23 WiX 3 Tutorial Generate filed
  • WiX 自定义操作项目 - BadImageFormatException

    我正在开发我的第一个自定义操作 但无法加载生成的 CA dll 文件 这是最简单的过程和结果 我创建了一个自定义操作项目并保留所有默认值 该类看起来像这样 using Microsoft Deployment WindowsInstalle
  • 使用全屏对话框时如何隐藏导航栏

    我用的是全屏 Dialog以显示ExoPlayer全屏模式下的视频 我已经在使用以下代码onCreate的方法Activity主办Dialog隐藏Navigation Bar public class BaseActivity extend
  • 将引导程序与 MSI ui 一起使用

    我有可以安装的 MSI 文件 它包含一个定制的 UI 还收集用户的数据 作为安装的一部分 如果缺少的话我想安装以下内容 Net框架4 0 Microsoft Visual C 2010 可再发行组件包 x64 据我所知 引导程序也应该包含

随机推荐