0

.msi为自定义安装程序操作编写脚本。当安装程序调用我的脚本时,您可以通过以下方式获取安装程序属性Session.Property("PropName")

如果您不通过安装程序调用,则会出现运行时异常。我想要我的脚本,这样我就可以在没有安装程序的情况下进行开发和调试。我如何捕捉到这个错误?

我想做类似的事情:

if Session != null 
  setting=Session.Property("prop1")
else 
  setting="SomeOtherSetting"
end if
4

2 回答 2

1

您是否正在寻找用于检查 null 的 VBScript 语法?

这个怎么样:

If (IsNull(Session)) Then
  setting=Session.Property("prop1")
Else 
  setting="SomeOtherSetting"
End If
于 2009-10-14T18:44:40.427 回答
0

问题是该Session对象不是在 MSI 脚本之外定义的,因此对其属性或方法的任何引用都会引发异常。要检查是否定义了对象或变量,可以使用以下IsEmpty函数:

If Not IsEmpty(Session) Then
  setting = Session.Property("prop1")
Else
  setting = "SomeOtherSetting"
End If

另一种可能的解决方案是使用该On Error Resume Next语句来捕获由引用对象的属性和方法引起的异常Session

On Error Resume Next

setting = Session.Property("prop1")

If Err.Number <> 0 Then
  setting = "SomeOtherSetting"
End If
于 2009-10-15T06:18:31.520 回答