5

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

Windows VistaとServer 2003の両方でこれを試しましたが、成功しませんでした。どちらもIE8を使用しているので、ActiveXの互換性の問題があると思っていました。私はIE6でそれをテストし、同じ問題に遭遇しました - しかし、私たちは過去数回HTAのためにこのフォーマットを成功させました。両方のマシンでAdministratorアカウントからインストールしようとしていますが、MSI自体が期待通りに実行されます。

これまでのところ、私は次のことを試してみました:

  1. は= ACTION」にInstallProduct方法については、「コマンドラインの設定」(第2パラメータ)を変更する絶対
  2. にMSIのファイルパスを変更しますADMIN」(インストール管理者を強制する)と 『ACTION = INSTALL』 IEでActiveXの設定を変更する
  3. を - 『のActiveXを初期化し、スクリプトのスクリプトのための安全とマークされていない制御しプロンプト』を 『』
  4. 信頼済みサイトにlocalhostを追加IEのリスト
  5. ここIE7Emulation、IE5やIE6モードで

を実行するHTAに互換性メタタグを追加すると、失敗している方法/コンテキストである:

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); 
} 

をクリックしたときの方法は、次に呼び出され私は広範囲にGoogleで検索して、誰かがしようとした場合にのみ関連する問題を発見した

<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をインストールしてください(これは明らかに修正されています)。何か案は?

+0

があなたの代わりにHTAのホスト.wsfファイルをスクリプトウィンドウの下に、この同じスクリプトを実行しようとしたことがありますか?開始もしそうなら、結果は同じでしたか? – dreftymac

+0

私はXPマシン上で管理アカウントなしであなたの例を実行しました。 ( '' display:none; visibility:hidden; "'を削除しただけです)Vista/2003では特にそうでしょうか? – Paul

+1

Windows 7では問題なく動作しているようです。_real_エラーコードのアプリケーションイベントログ(MsiInstallerにあるはずです)を確認しましたか? – tyranid

答えて

1

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

私はVBScriptを使用してMSI

Set sh = CreateObject("WScript.Shell") 
l_command = "%SystemRoot%\System32\msiexec.exe /i """ & sh.CurrentDirectory & "\" & p_file & """" 
sh.Exec l_command 
関連する問題