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


23

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

Windows Installerに問題があると思います。サービスを再起動しようとしましたが、効果はありませんでした。.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 Installerのリンクをいくつか取得しましたが、サポートされているオペレーティングシステムの一覧に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

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


@Sergeはい、avast、今すぐインストーラーを無効にして実行しようとしましたが、それは役に立たないようです
ケダー

一時フォルダをきれいにして、もう一度試してください。
モアブ

@Moabいや、それは役に立たない
ケダー

問題が発生するOSを指定してください。
アレクセイイワノフ

@Moabすべて
ケダー

回答:


26

私もこの問題に遭遇しました。アレクセイ・イワノフの返答は私にはまったく役に立たなかったが、しかしそれは私に調査を促すようになったC:\Users\x\AppData\Local\Temp

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

それにもかかわらず、に行く後Properties > SecurityC:\Users\x\AppData\Local\Tempフォルダとすることを与えて、以前は今、失敗していたことを許可、インストーラが働いていました!やった!以来、すでに持っていたとのアクセス、私はそれを疑う必要も追加許可を。EveryoneFull controlEveryoneReadWriteFull controlExecute

今、私が疑問に思うのは、そもそもこれがどのように起こったのか、そしてこのディレクトリに対する正しいパーミッションはどうあるべきかということです。


1
これは私の問題を解決します!しかし、「全員」にユーザーの一時フォルダーへのフルアクセスを与えることはセキュリティ上の問題だと思います。私は自分にフルアクセスを許可しましたが、それは機能します。デフォルトでは、ディレクトリにはユーザーの「特別な権限」が設定されています。
ケダー

ええ、それは許可を与えるよりも理にかなっていますEveryone:-)。とにかく、私はこの問題の根本的な原因が何であるか疑問に思います。非常に人気のあるインストーラーであるiTunesインストーラーなど、いくつかのインストーラーで問題が発生しました。そのディレクトリのアクセス許可が壊れたのはなぜでしょうか。
ドミトリーミンコフスキー

同じマシンで他の制限された/管理者アカウントをチェックしましたが、それらはすべてパーミッションが正しく設定されているようです。
ケダー

これは私には機能しませんでした(Windows 7、32ビット)。これはそうでした。しかし、私のエラーは「このWindowsインストーラーパッケージに問題があります。セットアップの一部として実行されるプログラムが期待どおりに終了しませんでした。サポート担当者またはパッケージベンダーに連絡してください。」
aliteralmind 14

症状は似ていましたが、これはうまくいきませんでした。競合するPIPインストールであることが判明しました。これは私を修正しました:stackoverflow.com/a/23350061/797945
Jagu 14

8

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


1
これは回避策ではなく(すべてのソフトウェアを適切にインストールしない)、機能しません(この特定の問題のため)
ケダー

1つの小さな間違い:これは正しいコマンドですmsiexec /i packagename.msi

このソリューションは完全に機能し、インストーラーのために全員にTempフォルダーの完全なアクセス許可を与えるよりも優れています。(正しい構文については、2番目のコメントを必ず読んでください。)
Gaurav Kumar

+1このソリューションは、上記で選択した回答にも含まれている必要があります。その選択された答えは、みんなの最後の手段でなければなりません。
tom_mai78101

1

システムに必要なDLLが欠落している必要があります。

どちらの場合も、WindowsインストーラーはDLLにあるカスタムアクションを実行しようとしました。これらの.tmpファイル:C:\Users\x\AppData\Local\Temp\MSI570C.tmpC:\Users\x\AppData\Local\Temp\MSIA32E.tmpは、実際にはMSIから抽出されたDLLファイルです。

しかし、何らかの理由でDLLのロードに失敗しました。

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

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

最も可能性の高い候補は2つあります。VisualC ++ランタイムが欠落しているか、.Netランタイムが欠落しています。しかし、それは単なる推測です...


一時ディレクトリにエラーログが作成されるのを見るだけです。他に何もありません。しかし、インストーラーからファイルを抽出することを検討して、msiexecコマンドを使用してPythonを抽出しました。すべてのファイルは通常のインストールと同じように使用可能になりました。インストールされているソフトウェアのリストにエントリが表示されないことを除いて。Pythonをパスに追加すると、期待どおりに動作します
...-ケダー

1
気づくには速すぎます。はい、Windows Installerパッケージからファイルを抽出できますが、製品がインストールされていないため(MSIの観点から)、プログラムの登録は実行されません。これらのtmp DLLファイルはインストールイメージの一部ではなく、インストール中に実行されるヘルパーです。取得するには、Orcaツールを使用するか、WiXでmsiを逆コンパイルします。ただし、既にPythonを使用しています。
アレクセイイワノフ

ソフトウェアを登録しなくても生活できると思います。完全なコマンド:msiexec / a python.msi / qb TARGETDIR = "C:\ install_path"
ケダー


@ 101この場合、インストーラーは壊れています。つまり、バグです。インストーラーは、MSVCランタイムを含む追加のソフトウェアに依存してはいけません。自己完結型でなければなりません。MSVC 2008または2010が必要な場合は、これらのパッケージを製品とともにインストールする必要があります(インストーラー自体に含まれています)。
アレクセイイワノフ

0

ディマディマが提案したことを試しましたが、まだアクセスの問題が少しありました。Win 7 / Vista用の所有権の取得というツールを探しました。右クリックにコンテキストメニューが追加され、「所有権を取得」できます。私はそれが魅力のように働いたことを試してみようと思った。

http://www.howtogeek.com/howto/windows-vista/add-take-ownership-to-explorer-right-click-menu-in-vista/


-1

これらのソリューションはどれもうまくいきませんでしたが、ダウンロードフォルダーに直接移動し、実行するインストールのアイコンを右クリックし、エラーメッセージなしでインストールされた「管理者として実行」をクリックしました。


MSIインストーラーにはそのオプションがありません。
ケダー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.