取消MSI而不显示“安装中断”对话框

时间:2010-07-21 23:15:13

标签: wix windows-installer wix3

我想知道我的欢迎屏幕上的“取消”按钮是否可以完全退出安装程序而不显示最终的“安装中断”对话框。当用户尚未开始安装时,我认为这是多余的。

如果用户取消已经启动的安装,我仍然希望显示该对话框,但是如果安装尚未启动则不会显示(如果取消按钮是点击欢迎画面。)

我尝试过各种各样的东西,但我对Windows Installer如何解决方案缺乏正确的理解。

更新:让它发挥作用!我最终结合使用了这两个建议 - 我希望我能给你两个答案,但我会把它给予雷,因为他有最低的代表。但我会赞同他们两个。这就是我做到的方式(我仍感到惊讶它的作用):

我使用Publish元素作为光线建议,但是我没有调用事件(没有名为“Finish”的事件),而是将属性“AbortInstall”设置为1

<Publish Dialog="SimpleDlg"
                    Control="Cancel"
                    Property="AbortInstall"
                    Value="1">1</Publish>

我在Wix / Fragment / UI下的自定义设置文件WixUI_Simple.wxs中这样做了

然后,在UserExit.wxs中我修改了InstallUISequence,如下所示:

<InstallUISequence>
            <Show Dialog="Simple_UserExit"
                    OnExit="cancel">NOT AbortInstall = 1</Show>
        </InstallUISequence>

......这是克里斯托弗提出的想法。

多谢你们俩!

3 个答案:

答案 0 :(得分:3)

查看InstallUISequence表:

http://msdn.microsoft.com/en-us/library/aa369543(VS.85).aspx

注意特殊对话框的序列为-1,-2和-3。请注意,您还可以在对话框上添加条件。通过一点点创建,您可以使用属性作为标志来确定您的安装是否真正开始并阻止或显示相关对话框。

答案 1 :(得分:1)

我没有对此进行测试,因此它可能无法正常工作,但到底是什么。

你可以在Cancel按钮控件上为WelcomeDlg创建一个Publish元素,如下所示:

<Publish Dialog="WelcomeDlg" Control="Cancel" Event="Finish" Value="Exit">1</Publish>

让我知道它是怎么回事:))

答案 2 :(得分:1)

仅供参考乐趣。
如何在隐藏退出对话框
<UI>标记位置下的自定义 WixUI_xxxxx.wxs 中     

<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return">1</Publish>
<Publish Dialog="MyNewDlg" Control="Ok" Event="EndDialog" Value="Return" Order="1">1</Publish>

<Product>标记下插入:     

<Property Id="ExitSuccess" Value="1" />

和     

<InstallUISequence>
  <Show Dialog="MyNewDlg" After="SomeAction">Installed</Show>
  <Show Dialog="ExitDialog" OnExit="success">NOT ExitSuccess = 1</Show>
</InstallUISequence>

就是这样。