Installer Custom Action Error - Type Mismatch:[string:“C:\”]

时间:2013-07-15 02:18:03

标签: wix custom-action wix3.7 type-mismatch

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

<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")),但也无效。

任何人都知道这里发生了什么?

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

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

你有Right反驳的论点。