Wix - 自定义操作返回代码 - 处理

时间:2016-09-20 13:17:43

标签: c# wix custom-action

请仔细阅读,因为我会解释我想要做的事情。我有一个wix安装程序调用自定义操作来验证用户输入。如果验证成功,我想调用下一个对话框,如果验证不成功,我想调用

  1. 我有自定义操作
  2. 自定义操作会验证用户名和密码
  3. 如果验证成功,则自定义操作会将属性([CONNECTED] = 1)值设置为1
  4. 如果验证失败,则将属性值设置为空,然后弹出一个显示值不正确的消息框
  5. 自定义操作(c#)在我的对话框中按下一个按钮
  6. 执行
  7. 自定义操作执行正常,并在出现故障时弹出 这是问题所在 如果出现故障,则弹出窗口并且我的wix安装程序跳转到结束对话框(FINISH),只给我选择退出安装。 或者它有时会给我下一个对话框,即使它失败了。 这是执行我的自定义操作的代码。 <Control Id="Next" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="[ButtonText_Next]"> <Publish Event="DoAction" Value="MyCustomAction">1</Publish> <Publish Event="NewDialog" Value="CustomizeDlg">CONNECTED= "1"</Publish> </Control>
  8. 我的问题是,如果有错误意味着它没有返回1,它为什么不会保留在当前对话框中。单击“确定”后,它将转到“完成”对话框。

1 个答案:

答案 0 :(得分:1)

自定义操作的返回值供Windows Installer使用,而不是您。返回ActionResult.Failure告诉Windows您的CA失败如此严重以至于安装需要完成。如果您的CA工作正常并且对安装过程不致命,则返回成功结果。使用属性值表示用户结果。

根据我的经验,处理这种类型对话的更常用的方法是使用从一个对话框到下一个对话框的正常序列。唯一的区别是,如果用户验证成功,则在禁用“下一步”按钮的情况下启动对话框并启用它。