WindowsObjectsをActiveXObjectとして使用して製品をインストールしようとしています。過去に使用されていた同じHTAモデルを使用して、インストールしようとすると「Msi API Error:InstallProduct、PackagePath、PropertyValues」というエラーがスローされます。MSIのHTAインストーラが失敗する
Windows VistaとServer 2003の両方でこれを試しましたが、成功しませんでした。どちらもIE8を使用しているので、ActiveXの互換性の問題があると思っていました。私はIE6でそれをテストし、同じ問題に遭遇しました - しかし、私たちは過去数回HTAのためにこのフォーマットを成功させました。両方のマシンでAdministratorアカウントからインストールしようとしていますが、MSI自体が期待通りに実行されます。
これまでのところ、私は次のことを試してみました:
- は= ACTION」にInstallProduct方法については、「コマンドラインの設定」(第2パラメータ)を変更する絶対
- にMSIのファイルパスを変更しますADMIN」(インストール管理者を強制する)と 『ACTION = INSTALL』 IEでActiveXの設定を変更する
- を - 『のActiveXを初期化し、スクリプトのスクリプトのための安全とマークされていない制御しプロンプト』を 『』
- 信頼済みサイトにlocalhostを追加IEのリスト
- ここ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をインストールしてください(これは明らかに修正されています)。何か案は?
があなたの代わりにHTAのホスト.wsfファイルをスクリプトウィンドウの下に、この同じスクリプトを実行しようとしたことがありますか?開始もしそうなら、結果は同じでしたか? – dreftymac
私はXPマシン上で管理アカウントなしであなたの例を実行しました。 ( '' display:none; visibility:hidden; "'を削除しただけです)Vista/2003では特にそうでしょうか? – Paul
Windows 7では問題なく動作しているようです。_real_エラーコードのアプリケーションイベントログ(MsiInstallerにあるはずです)を確認しましたか? – tyranid