5

HTA を使用して、WindowsInstaller.Installer を ActiveXObject として使用して製品をインストールしようとしています。過去に使用されていたのと同じ HTA モデルを使用してインストールしようとすると、「Msi API エラー: InstallProduct,PackagePath,PropertyValues」というエラーがスローされます。

Windows Vista と Server 2003 の両方でこれを試しましたが、成功しませんでした。どちらも IE8 を使用していたので、ActiveX の互換性の問題ではないかと考えました。その後、IE6 でテストしたところ、同じ問題が発生しました。ただし、過去に何度か HTA にこの形式を使用して成功しました。両方のマシンで管理者アカウントからインストールしようとしていますが、MSI 自体は期待どおりに実行されます。

これまでのところ、次のことを試しました。

  1. MSI のファイル パスを絶対パスに変更する
  2. InstallProduct メソッドの「コマンド ライン設定」(2 番目のパラメーター) を「ACTION=ADMIN」(管理者によるインストールを強制する) および「ACTION=INSTALL」に変更します。
  3. IE の ActiveX 設定の変更 - 「スクリプトを実行しても安全であるとマークされていない ActiveX コントロールを初期化してスクリプト化する」を「プロンプト」に変更する
  4. IE の信頼済みサイト リストに localhost を追加する
  5. HTA に互換性メタ タグを追加して、IE7Emulation、IE5、または IE6 モードで実行する

失敗しているメソッド/コンテキストは次のとおりです。

var Software = new Array(
    new Array("..\\Software\\Product.msi", "ProductCode"));

   function run_msi(i)
{
    try
    {
        //Execute MSI application install on error resume next
        var msi = new ActiveXObject("WindowsInstaller.Installer");
        var installer = Software[i][0];
        msi.UILevel = 5; // full interactive mode
        msi.InstallProduct(installer, "");
    }
    catch (e)
    {
        alert ("Unable to launch the Installer Package.  This may be because you do not have permission to install software.");
    }
    // Check the install status of the MSI to ensure it is in the registry
    RegistryKeyExists(i);
}

このメソッドは、次のように「インストール」ボタンをクリックすると呼び出されます。

<td><span class="link" style="display: none; visibility: hidden" id="SoftwareTextTrue0" onclick="javascript:run_msi(0);">Uninstall</span> <span class="link" style="display: none; visibility: hidden" id="SoftwareTextFalse0" onclick="javascript:run_msi(0);">Install</span> </td>

私は広範にグーグルで検索しましたが、誰かがSilverlight 3をインストールしようとしたときに関連する問題しか見つかりませんでした(これはその後修正されたようです). 何か案は?

4

1 に答える 1

1

インストールセットにも同様の問題があります。

VBScript を使用して MSI を開始しました

Set sh = CreateObject("WScript.Shell")
l_command =  "%SystemRoot%\System32\msiexec.exe /i """ & sh.CurrentDirectory & "\" & p_file  & """"
sh.Exec l_command
于 2009-11-10T09:18:21.683 に答える