【问题标题】:Execute a Custom Action from User Interaction in InstallShield (Basic MSI Project)在 InstallShield 中通过用户交互执行自定义操作(基本 MSI 项目)
【发布时间】:2012-04-17 17:49:35
【问题描述】:

我正在使用 InstallShield 2012 Professional 创建一个基本的 MSI 项目。我的问题涉及如何执行由用户与对话框交互引起的自定义操作。

我一直在进行研究,但我只是没有得到正确的设置组合来使其工作。我已经执行了自定义操作,但在它甚至还没有获得用户交互之前。

安装完成后,标准的“SetupCompleteSuccess”对话框显示,我添加了一个复选框,这样用户除了启动程序外,还可以选择在单击完成按钮时查看一些 html 发行说明。程序启动完美,并在项目助手向导中设置。

在对话框中,我设置复选框以将属性 LAUNCHRELEASENOTES 设置为 1。在对话框行为中,如果条件 LAUNCHRELEASENOTES=1 为,我在 Finish(又名 OK)按钮中设置 DoAction 以执行自定义操作“OpenReleaseNotes”真的。

在我创建的“OpenReleaseNotes”自定义操作中,我可能弄乱了配方,我正在使它启动一个可执行文件(在这种情况下 cmd.exe 只是为了调用 DOS 命令)来打开 html 发行说明。我完全不清楚自定义操作中需要设置哪些设置组合才能在安装结束时通过用户交互执行。

应该如何为自定义操作设置这些?

  • 退货处理
  • 脚本内执行
  • 执行调度
  • 安装 UI 序列
  • 安装执行序列
  • 安装执行条件(如果适用)

【问题讨论】:

    标签: windows-installer installshield installshield-2012


    【解决方案1】:

    ControlEvents 有一个操作顺序。右键单击“EndDialog”控件事件并选择下移以使其在您的自定义操作之后执行。

    【讨论】:

    • 确实如此。在对话框行为部分的“确定”按钮系列控制事件中,将“EndDialog”放在底部就可以了。知道该列表按操作顺序排列非常有价值。太感谢了。对于那些跟随的人,我犯了一些其他更小的错误,即将我的自定义操作的条件设置为LAUNCHRELEASENOTES=1 而不仅仅是LAUNCHRELEASENOTES。我在自定义操作中的命令行也需要一些帮助。再次感谢您。
    • FWIW,Installshield 的 UI 很糟糕。基础 ControlEvent 表有一个 Order 列,但 InstallShield 将其表示为有序列表并隐藏实际顺序。它不直观,除非有人向您展示,否则您会撞到墙上。我会保留他们现在拥有的功能,但也会显示“订单”列并使其可编辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多