WiX:Can';“t手柄”;“安装后启动应用程序”;复选框=0
我正在使用WiX进行安装,其中有一个“安装后启动应用程序”复选框。 目标是对设置复选框以及取消设置复选框产生反应。如果设置了复选框,我需要运行一个应用程序。如果没有设置复选框,我需要运行同一个应用程序,但使用命令行参数 这是我的WiX脚本的一部分WiX:Can';“t手柄”;“安装后启动应用程序”;复选框=0,wix,custom-action,Wix,Custom Action,我正在使用WiX进行安装,其中有一个“安装后启动应用程序”复选框。 目标是对设置复选框以及取消设置复选框产生反应。如果设置了复选框,我需要运行一个应用程序。如果没有设置复选框,我需要运行同一个应用程序,但使用命令行参数 这是我的WiX脚本的一部分 <CustomAction Id="StartConfigManagerOnExit" FileKey="ParamsShower.exe" ExeCommand=""
<CustomAction Id="StartConfigManagerOnExit"
FileKey="ParamsShower.exe"
ExeCommand=""
Execute="immediate"
Impersonate="yes"
Return="asyncNoWait" />
<CustomAction Id="StartUpgradeConfigOnExit"
FileKey="ParamsShower.exe"
ExeCommand="/upgrade"
Execute="immediate"
Impersonate="yes"
Return="asyncNoWait" />
<UI>
<Publish Dialog="ExitDialogEx"
Control="Finish"
Order="1"
Event="DoAction"
Value="StartConfigManagerOnExit">LAUNCHAPPONEXIT = 1</Publish>
<Publish Dialog="ExitDialogEx"
Control="Finish"
Order="1"
Event="DoAction"
Value="StartUpgradeConfigOnExit">LAUNCHAPPONEXIT = 0</Publish>
<Publish Dialog="ExitDialogEx"
Control="Finish"
Event="EndDialog"
Value="Return"
Order="999">1</Publish>
<Dialog Id="ExitDialogEx"
Width="370"
Height="270"
Title="[ProductName] Setup">
<Control Id="LaunchCheckBox"
Type="CheckBox"
X="135"
Y="190"
Width="220"
Height="40"
Property="LAUNCHAPPONEXIT"
Hidden="yes"
CheckBoxValue="1"
Text="Launch an app">
<Condition Action="show">NOT Installed</Condition>
</Control>
</Dialog>
<InstallUISequence>
<Show Dialog="ExitDialogEx"
OnExit="success" />
</InstallUISequence>
<AdminUISequence>
<Show Dialog="ExitDialogEx"
OnExit="success" />
</AdminUISequence>
</UI>
LAUNCHAPPONEXIT=1
LAUNCHAPPONEXIT=0
1.
未安装
设置LaunchCheckBox后,安装将启动应用程序。但如果未设置复选框,则不会运行它。您需要为属性添加初始化自定义操作
<CustomAction ID="InitLAUNCHAPPONEXIT"
Property="LAUNCHAPPONEXIT"
Value="0"
Return="check"/>
然后在显示退出对话框之前将其添加到InstallUISequence,或者只需将您的属性添加到产品
我找到了答案。取消选中时,复选框属性似乎不等于0。只需将条件“LAUNCHAPPONEXIT=0”更改为“NOT LAUNCHAPPONEXIT”即可解决此问题
默认设置:
<Property Id="LAUNCHAPPONEXIT" Value="1" />
然后纠正条件(用sascha的评论纠正):
LAUNCHAPPONEXIT
不启动Apponexit
复选框在未选中时没有任何值,因此您可以简单地使用1/0符号,而不是使用1/0符号
LAUNCHAPPONEXIT
及
我已经准备好了。现在,如果选中该复选框,则会触发StartUpgradeConfigOnExit(LAUNCHAPPONEXIT=0)。如果未设置复选框,则不会发生任何情况。
LAUNCHAPPONEXIT
Not LAUNCHAPPONEXIT