【发布时间】:2013-06-26 23:03:27
【问题描述】:
我的安装程序中有一个自定义操作,它使用 vbscript 自定义操作打开一个消息框。
<CustomAction Id="EXENotFound" Script="vbscript" Return="check">
<![CDATA[
Dim i
If session.Property("REMINDEX_SHORTCUT") = "" Then
i = MsgBox(session.Property("TextProp"), 1)
End If
]]>
</CustomAction>
如果 i = 2 的值(如果在消息框中按下取消),我想取消安装。如果我的脚本返回值 3,我想我可以取消安装,但它只返回 0。我试过这个:
Dim i
If session.Property("REMINDEX_SHORTCUT") = "" Then
i = MsgBox(session.Property("TextProp"), 1)
End If
If i = 2 Then
return 3
End If
这会引发一些关于“类型不匹配”的错误。
我绝望的时候也试过这个:
<CustomAction Id="EXENotFound" Script="vbscript" Return="check">
<![CDATA[
Dim i
If session.Property("REMINDEX_SHORTCUT") = "" Then
i = MsgBox(session.Property("TextProp"), 1)
End If
If i = 2 Then
EXENotFound = 3
End If
]]>
</CustomAction>
我在网上进行了广泛的研究,但无法找到如何通过自定义操作取消安装,甚至无法找到如何简单地手动返回 3。
任何建议将不胜感激
【问题讨论】:
-
您应该使用 Windows Installer UI 而不是自定义操作。开始here。
-
谢谢!那效果要好得多。但是,现在我在单击“安装”时弹出了该消息,我已经失去了实际的安装功能。您是否知道应该触发以开始安装的事件,以便我可以将其链接到自定义提示中的控件之一,而不是默认安装按钮?我试图在 VerifyReadyDlg 源代码中找到该事件,但找不到。
标签: vbscript wix installation custom-action wix3.7