1

luaいくつかのカスタム アクション スクリプト ( & )を使用して、MSI Factory でビルドされた msi インストーラーがありvbsます。スクリプトの 1 つは、パッケージからカスタム プロパティを取得し、インストールが正常に完了した後でそれをファイルに書き込もうとします。このカスタム プロパティはMSI.ChangeMSIProperty、ダウンロードがパラメーターで要求されたときに、asp.NET ハンドラーを介してダウンロードされたパッケージに追加されます。問題は、プロパティの変更によって msi ファイルの署名が壊れたため、msi ファイル名にデータを追加しようとすることです。これを処理するには、vbscript を変更する必要があります。しかし、インストーラーのファイル名を取得できません。

Dim data, tokens
Dim fso, f
Dim setupExeFilename, setupExeFilenameParts

data = Session.Property("CustomActionData")
tokens = Split(data,"|")

Set fso = CreateObject("Scripting.FileSystemObject")

Set f = fso.CreateTextFile(tokens(0) & "\\data.txt", True)

    if tokens(1) = "_DEFAULT_" then
        setupExeFilename = Session.Property("SETUPEXENAME")
        setupExeFilenameParts = Split(data,".")
        f.Write setupExeFilenameParts(UBound(setupExeFilenameParts) - 1)
    else
        f.Write tokens(1)
    end if

f.Close

どこかで見つけましSession.Property("SETUPEXENAME")たが、うまくいきません。Session、Session.Property、Session.ProductProperty、Installer でいくつかのプロパティを検索しましたが、まだ運がありません。試してみるとインストーラーオブジェクトは存在しますが、必要なものを返すプロパティはありません。

If not Installer is nothing then
    msgbox "Installer ok"
    msgbox Installer.version
end if

インストーラーのファイル名を取得することはできますか?

4

1 に答える 1