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 インストーラーのカスタム アクションでスクリプトの使用を避ける理由の 1 つに遭遇しました。それらはデバッグが困難です。詳細については、この回答を参照してください。

Rightあなたは逆転する議論を持っています。

于 2013-07-15T13:42:50.250 に答える