请仔细阅读,因为我会解释我想要做的事情。我有一个wix安装程序调用自定义操作来验证用户输入。如果验证成功,我想调用下一个对话框,如果验证不成功,我想调用
<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>
我的问题是,如果有错误意味着它没有返回1,它为什么不会保留在当前对话框中。单击“确定”后,它将转到“完成”对话框。
答案 0 :(得分:1)
自定义操作的返回值供Windows Installer使用,而不是您。返回ActionResult.Failure告诉Windows您的CA失败如此严重以至于安装需要完成。如果您的CA工作正常并且对安装过程不致命,则返回成功结果。使用属性值表示用户结果。
根据我的经验,处理这种类型对话的更常用的方法是使用从一个对话框到下一个对话框的正常序列。唯一的区别是,如果用户验证成功,则在禁用“下一步”按钮的情况下启动对话框并启用它。