0

我正在创建一个安装程序,并且我有一个操作字符串的自定义操作:

<CustomAction Id="CheckDataPath2" Script="vbscript" Execute="immediate" Return="ignore">
  <![CDATA[
    Dim p
    p=Session.Property("DATALOCATION")
    Dim s
    s=Right(1,p)
    If (s="/") OR (s="\") Then
       Session.Property("PROCEED")="1"
    Else
      Session.Property("PROCEED")="2"
    End If
  ]]>
</CustomAction>

<InstallExecuteSequence>
    <Custom Action="CheckOrigPath2" Before="InstallInitialize">CONTINUE</Custom>
</InstallExecuteSequence>

在日志文件中,我可以看到此自定义操作引发了错误。它说:

Microsoft VBScript runtime error 5: Type mismatch: '[string: "C:\"]'

“C:\”是 DATALOCATION 属性的值。我试过p = CStr(Session.Property("DATALOCATION"))了,也不管用。

有人知道这里发生了什么吗?

任何建议将不胜感激。

4

1 回答 1

1

您遇到了人们避免在 Windows Installer 自定义操作中使用脚本的原因之一:它们很难调试。有关更多信息,请参阅此答案

你的论点要Right颠倒。

于 2013-07-15T13:42:50.250 回答