维克斯:无法处理“启动应用程序安装后”复选框= 0
-
20-09-2019 - |
题
我正在与维克斯安装具有“启动应用程序安装后”复选框。 我们的目标是对settting的复选框,以及对取消设置复选框的反应。如果该复选框设置,我需要运行的应用程序。如果该复选框没有设置,我需要运行相同的应用程序,但用命令行参数。
下面是我的维克斯脚本的一部分。
<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>
这是安装开始时LaunchCheckBox设定该应用程序。不过,这并不在壳体的复选框未被设置运行它。
解决方案
我已经找到了答案。貌似复选框属性不等于0时,选中。简单地改变条件 “LAUNCHAPPONEXIT = 0” 与 “NOT LAUNCHAPPONEXIT” 解决的情况。
请默认:
<Property Id="LAUNCHAPPONEXIT" Value="1" />
然后校正条件(具有的Sascha的评论校正的):
<Publish Dialog="ExitDialogEx" Control="Finish" Order="1" Event="DoAction" Value="StartConfigManagerOnExit">LAUNCHAPPONEXIT</Publish>
<Publish Dialog="ExitDialogEx" Control="Finish" Order="1" Event="DoAction" Value="StartUpgradeConfigOnExit">NOT LAUNCHAPPONEXIT</Publish>
其他提示
一个复选框没有值在所有未选中时,因此而不是使用1/0符号可以简单地使用
LAUNCHAPPONEXIT
和
Not LAUNCHAPPONEXIT
您需要添加初始化自定义操作你的财产,
<CustomAction ID="InitLAUNCHAPPONEXIT"
Property="LAUNCHAPPONEXIT"
Value="0"
Return="check"/>
,然后显示退出对话框之前将其添加到InstallUISequence,或者干脆你的属性添加到产品<Property Id="LAUNCHAPPONEXIT" Value="0" />
。
不隶属于 StackOverflow