Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Installation 在WiX中,根据条件提前结束安装_Installation_Wix_Wix3.5 - Fatal编程技术网

Installation 在WiX中,根据条件提前结束安装

Installation 在WiX中,根据条件提前结束安装,installation,wix,wix3.5,Installation,Wix,Wix3.5,在显示欢迎对话框后,我需要根据特定条件提前结束安装,然后显示一个自定义消息对话框(已编写),解释安装程序退出的原因。这是我的密码: <Publish Dialog="WelcomeDlg" Control="Next" Event="DoAction" Value="CheckForCondition" Order="1">1</Publish> <Publish Dialog="WelcomeDlg" Control="Next" Event="S

在显示欢迎对话框后,我需要根据特定条件提前结束安装,然后显示一个自定义消息对话框(已编写),解释安装程序退出的原因。这是我的密码:

    <Publish Dialog="WelcomeDlg" Control="Next" Event="DoAction" Value="CheckForCondition" Order="1">1</Publish>
    <Publish Dialog="WelcomeDlg" Control="Next" Event="SpawnDialog" Value="ConditionExistsMsgDlg" Order="2">CONDITIONEXISTS = "1"</Publish>
    <Publish Dialog="WelcomeDlg" Control="Next" Event="?????" Value="??????" Order="3">CONDITIONEXISTS = "1"</Publish>
    <Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="AfterWelcomeDlg" Order="4">CONDITIONEXISTS = "0"</Publish>
1
CONDITIONEXISTS=“1”
CONDITIONEXISTS=“1”
CONDITIONEXISTS=“0”

事件和值字段中的顺序是什么=3?我尝试了WixExitEarlyWithSuccess CA,但这确实表明了一个错误。我只想转到某种完成的对话框,而不让MSI通知用户有错误。这可能吗?

事件应该是NewDialog,值应该是您想要显示的自定义对话框(某种类型的完成对话框),例如CustomExitDlg

您还需要确保安装程序在单击Finish(或自定义最终屏幕上定义的其他按钮)后返回。这是默认WiX安装UI的标准规则:

<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
1
中指出,从带有“Return”(返回)的对话框返回将恢复正常操作(取消按钮将执行的操作),而“Exit”(退出)用于中止整个安装过程。。最有可能的是,UserExit.wxs对话框将链接到此(通过OnExit=“cancel”!)并根据您使用的对话框集显示。如果您不想在“退出”后显示任何内容,则需要从UI中删除UserExit


您可以下载Wix工具集源代码(wixXY debug.zip)并查看文件夹“.\src\ext\UIExtension\wixlib”,如果您想了解如何在标准对话框(如UserExit.wxs)中完成此操作。

只是为了澄清问题,您想在CONDITIONEXISTS=“0”时显示AfterWelcomeDlg吗?在这里,您希望有一个finish按钮退出安装程序?如果CONDITIONEXISTS=“0”,我希望安装正常进行。该对话框可以是任何对话框(例如SetupTypeDlg),但在我的例子中,它是一个自定义对话框。如果CONDITIONEXISTS=“1”,我想显示某种类型的退出对话框,它不表示错误。ConditionExistsMsgDlg在这里的作用是什么?这是要在安装程序退出之前向用户显示的自定义消息对话框吗?是。嗯,不能只回答“是”?如果ConditionMsgDlg是最后一个对话框,您不需要上面代码中的第2行和第3行。有一个值为ConditionMsgDlg的NewDialog事件就足够了。只需为按钮创建一个“EndDialog”事件和一个“Return”值就可以结束安装了?我自己还没有尝试过,但看起来确实如此。最后一个对话框的“完成”按钮应包含此事件。