2012-04-17 86 views
1

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

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

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

Checkbox setup in dialog

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

Button behavior.

在我创作的“OpenReleaseNotes”自定义操作,在那里我可能搞乱了几招,我使其启动可执行文件(在这种情况下,CMD.EXE只是调用DOS命令)打开html发行说明。我完全不清楚自定义操作中的什么组合设置需要在安装结束时通过用户交互来执行。

Custom Action

应当如何进行这些自定义操作来设置?

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

回答

2

ControlEvents有操作顺序。右键单击“EndDialog”控件事件并选择向下移动,以便在您的自定义操作后执行它。

+0

事实确实如此。在对话框行为部分的“确定”按钮系列控件事件中,将“EndDialog”放在最下面,知道该列表按照操作顺序非常有价值。非常感谢。对于那些跟随你的人,我犯了一些其他更小的错误,即将自定义行为的条件设置为“LAUNCHRELEASENOTES = 1”而不是“LAUNCHRELEASENOTES”。我在自定义操作中的命令行也需要一些帮助。再次感谢你。 – GNat 2012-04-19 11:43:33

+0

FWIW,这对于Installshield来说是一个糟糕的用户界面。底层ControlEvent表具有Order列,但InstallShield将其表示为有序列表并隐藏实际顺序。这不是直观的,除非有人向你展示,否则会让你撞到墙上。我会保留它们现在具有的功能,但也显示订单栏并使其可编辑。 – 2012-04-19 13:12:47

相关问题