私はその問題が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/ja-jp/download/details.aspx?id=25
Windows(7 x 64)は最新です。
また、このFixitを試してみました: http://support.Microsoft.com/mats/Program_Install_and_Uninstall
しかし、それは問題を見つけることができませんでした。
私もこの問題に遭遇しました。 Alexey Ivanovの返事は私の助けにはなりませんでしたが、C:\Users\x\AppData\Local\Temp
の調査を促しました。
いつものように、エラーメッセージは半分しか役に立ちませんでした。私の場合、DLLが欠けていませんでした - インストーラはフォルダにアクセスする権限を持っていませんでした。私は管理者としてインストーラを実行しようとしませんでした - これは私がすでに管理者アカウントを使用していて、UACが特権の昇格を処理することを期待していたことを考えると意味がありません。とにかく、Windowsの多くのことと同じように、このこと全体は私にとってちょっとした謎です。
それにもかかわらず、Properties > Security
フォルダのC:\Users\x\AppData\Local\Temp
に行き、そのEveryone
にFull control
の許可を与えた後、以前失敗していたインストーラは今うまくいきました!万歳! Everyone
はすでにRead
およびWrite
アクセス権を持っていたので、Full control
にも必要なExecute
権限が追加されたと思います。
私が今疑問に思っているのは、これがそもそもどのように行われたのか、そしてこのディレクトリに対する正しいパーミッションがどうなっているのかということです。
簡単な回避策は、管理者としてコマンドシェルを実行し(単にcmd.exeを検索して右クリック - >管理者として実行)、MSIパッケージの場所に移動してmsiexec /i packagename.msi
を実行することです。それは私のために働きました。
システムに必要な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が欠落しているかを調べるには、Visual Studioからdepends.exe
ユーティリティを使用できます。
一時ファイルがすでに削除されている場合、DLLを取得する唯一の方法は、パッケージから Binary
テーブルから抽出することです。
最も可能性の高い候補は2つあります。VisualC++ランタイムが見つからないか、.Netランタイムがありません。しかし、それは単なる推測です...
私はDimadimaが提案したことを試しましたが、私はまだ少しアクセス問題を抱えていました。私はWin 7/Vista用のtake ownershipというツールを掘り下げました。それは右クリックにコンテキストメニューを追加し、あなたは '所有権を取る'ことができます。私はそれが魅力のように働いたことを試みることを考えた。