MSIインストーラーのDLLを実行できませんでした

MSIインストーラーのDLLを実行できませんでした

dll を実行できませんでした

Windowsインストーラーの問題だと思います。サービスを再起動しようとしましたが、効果はありませんでした。.msi時々、次のようなエラー メッセージが表示されることがあります。

ここに画像の説明を入力してください

イベント ビューアー ログ:

Python インストーラー:

製品: Python 2.7.3 -- エラー 1723。この Windows インストーラー パッケージに問題があります。このインストールを完了するために必要な DLL を実行できませんでした。サポート担当者またはパッケージ ベンダーにお問い合わせください。アクション CheckDir、エントリ: _CheckDir@4、ライブラリ: C:\Users\x\AppData\Local\Temp\MSI570C.tmp

SSDLifeインストーラー:

製品: SSDlife Pro -- エラー 1723。この Windows インストーラー パッケージに問題があります。このインストールを完了するために必要な DLL を実行できませんでした。サポート担当者またはパッケージ ベンダーにお問い合わせください。アクション WIX_TestVersion、エントリ: WIX_TestVersion、ライブラリ: C:\Users\x\AppData\Local\Temp\MSIA32E.tmp

エラー 1723 で検索:このエラーは、Windowsインストーラーのバージョンが古い場合に発生する可能性があります。

Windows インストーラーのリンクをいくつか入手しましたが、どちらにもサポートされているオペレーティング システムのリストに Windows 7 が含まれていません。

https://www.microsoft.com/en-us/download/details.aspx?id=25そして

https://www.microsoft.com/en-us/download/details.aspx?id=8483&WT.mc_id=MSCOM_EN_US_DLC_DETAILS_131Z4ENUS22007

Windows(7 x64)は最新です。

このFixitも試しました:http://support.microsoft.com/mats/Program_Install_and_Uninstall

しかし、問題は見つかりませんでした。

答え1

私もこの問題に遭遇しました。Alexey Ivanov の回答は私にとってはあまり役に立ちませんでしたが、調査するきっかけにはなりましたC:\Users\x\AppData\Local\Temp

いつものように、エラーメッセージは半分しか役に立ちませんでした。私の場合、DLL が欠落していたわけではありません。インストーラーにはフォルダにアクセスする権限がありませんでしたインストーラを管理者として実行しようとはしませんでした。すでに管理者アカウントを使用していて、UAC が権限の昇格を処理することを期待していたことを考えると、これは意味がありませんでした。とにかく、Windows の多くのことと同様に、このこと全体が私にとっては少々謎です。

それにもかかわらず、フォルダProperties > Securityに移動してC:\Users\x\AppData\Local\TempEveryoneFull control権限により、以前は失敗していたインストーラーが動作するようになりました。やったー!Everyoneすでにアクセス権があったのでRead、必要な権限も追加されたWriteのではないかと思います。Full controlExecute

私が今疑問に思っているのは、そもそもこれがどうして起こったのか、そしてこのディレクトリの正しい権限はどうなっているのかということです。

答え2

簡単な回避策は、コマンド シェルを管理者として実行し (cmd.exe を検索して右クリック -> 管理者として実行)、MSI パッケージの場所に移動して を実行することですmsiexec /i packagename.msi。私の場合はこれでうまくいきました。

答え3

システムに必要な DLL が不足している可能性があります。

あなたが説明した両方のケースでは、Windows インストーラーは DLL にあるカスタム アクションを実行しようとしました。これらの .tmp ファイル:C:\Users\x\AppData\Local\Temp\MSI570C.tmpおよび は、C:\Users\x\AppData\Local\Temp\MSIA32E.tmp実際には MSI から抽出された DLL ファイルです。

しかし、何らかの理由で DLL の読み込みに失敗しました。

最も重要なことは、どの DLL が不足しているかを調べることです。エラー メッセージが画面に表示されている間に、一時ディレクトリに移動して、一時 DLL ファイルがまだ存在するかどうかを確認します。存在する場合は、DLL 拡張子を付けてコピーします。次に、必要な DLL のうちどの DLL が不足しているかを調べるには、depends.exeVisual Studio のユーティリティを使用できます。

一時ファイルがすでに削除されている場合、DLLを取得する唯一の方法は、パッケージからそれを抽出することです。Binaryテーブル。

最も可能性の高い原因は 2 つあります。Visual C++ ランタイムが欠落しているか、.Net ランタイムが欠落しています。ただし、これは単なる推測です...

答え4

これらの解決策はどれも私には効果がありませんでしたが、ダウンロード フォルダーに直接移動し、実行したいインストールのアイコンを右クリックして、「管理者として実行」をクリックすると、エラー メッセージが表示されずにインストールされました。

関連情報