DirectXのSDKをインストールしようとすると、「S1023エラー」が出る場合があります。
セットアップが失敗しました。 再配布可能なパッケージのインストール中にエラーが発生しました。 開いているすべてのプログラムを閉じて、セットアップをもう一度実行してください。 それでも問題が解決しなければ、DirectX開発者サポートにお問い合わせ下さい。 |
このS1023エラーですが、これは”インストーラが他のプロセスの起動に失敗した”という意味です。
エラーメッセージだけでは、何のプロセスの起動に失敗したかは表記されていないのですが、原因はDirectXのセットアップ作業中に実施される”Visual C++ 2010 再頒布可能パッケージ”(Visual C++ 2010 Redistributable Package)のインストールで問題が起きている場合がほとんどです。
※DirectXのインストーラーは、セットアップ中に裏でVC++の再頒布可能パッケージをインストールしています。
S1023エラーは常に起きるわけではなく、以下の条件を満たしている場合に発生するようです。
DirectX SQKのバージョンがJune 2010のものをインストールしている。 64bit版のWindowsを使用している。 (32bit版でも起きるかも...? 環境が無いので詳細不明) Microsoft Visual C++ 2010 再頒布可能パッケージをインストールしている。 |
問題が発生する理由
そもそも、なぜ”VC++の再頒布可能パッケージが入っているとDirectX SDKのインストールに失敗するのか?”という話ですが、これはJune 2010版SDKのインストーラにバグがあって、DirectXがインストールしようとする再頒布可能パッケージより”新しい”バージョンの「Visual C++ 2010 再頒布可能パッケージ」が既に入っていると問題が発生するようです。再頒布可能パッケージは、あまり明示的にインストールする事は有りませんが、後者は、例えばVisual Stdio 2010をインストールすると依存コンポーネントとして自動で入ります。
対処法
対処法としては、以下の手順を踏んで作業すれば正常にインストール出来るようになります。ざっくりとした作業フロー
Step1: 既にインストールされている最新の「Visual C++ 2010 再頒布可能パッケージ」を一旦削除する Step2: DirectXのSDKをインストールする。 Step3: SDKインストール時に入った古い「Visual C++ 2010 再頒布可能パッケージ」をアンインストールする。 Step4: 改めて、最新の「Visual C++ 2010 再頒布可能パッケージ」を単独でインストールする。 |
という訳で、各ステップの具体的な作業手順を紹介していきます。
既にインストールされている最新の「Visual C++ 2010 再頒布可能パッケージ」を一旦削除
コントロールパネル -> プログラムの機能を選択します。(WinXPの場合は”コントロールパネル -> アプリケーションの追加と削除”です)
一覧から「Visual C++ 2010 Redistributable Package」をアンインストールします。
64bitOSの場合は、x64とx86の2つあるかもしれませんが、両方アンインストールします。また、消すのはC++ 2010だけで、C++ 2008や2005はそのまま放置でOKです。
※念のため、バージョン番号を控えておいてください。
DirectX SDKをインストールする
次にDirectX SDKのインストールを行います。SDKを以下のURLからダウンロードし、セットアップを起動します。
Download: DirectX SDK – (June 2010) – Microsoft Download Center – Download Details
最初の画面で一部文字化けしてますが、気にしなくてOKです。
同意しますを選択して、次へをクリック
性能向上のため,ハードの情報をマイクロソフトに送信するかの確認です。
特に送る義務も無いので”No”を選択して次へをクリック(送りたい人は別にYesでもOKです。)
お好みのコンポーネントを選択して、次へをクリック。
(今回の確認では、デフォルトのままにしました)
インストールが開始されます。
暫くすると正常終了されます。
SDKインストール時に入った古い「再頒布可能パッケージ」をアンインストール
再度コントロールパネルから確認すると、古いバージョンの「Visual C++ 2010 再頒布可能パッケージ」が入っている事が分かります。
(下の画像だと10.0.30319に戻っています。)
これを右クリックして、アンインストールします。
はいをクリックすれば、削除完了です。
改めて、最新の再頒布可能パッケージを単独インストール
最新版の「Visual C++ 2010 再頒布可能パッケージ」を下記のURLからダウンロードします。
Download: Microsoft Visual C++ 2010 再頒布可能パッケージ (x64)
同意するを選択して、インストールボタンをクリックすれば、最新のモノが入ります。
その後、KB2467173に対応するパッチを適用してください(WindowsUpdateからも更新可能です)
[MS11-025] Visual C++ 2010 再頒布可能パッケージ セキュリティ更新プログラム (2011 年 4 月 12 日) について
これで作業は完了です。
再度コントロールパネルより、バージョンが上がっている事を確認してください。
補足:
「Visual C++ 2010 再頒布可能パッケージ」のバージョンについてですが、10.0.30319は、VC++ 2010のService Pack1導入前で、10.0.40219はService Pack1導入後のものです。SP1ではsecurity fixとか行われてるので、必ず最新版にしておいてください。
ゲームプログラマになる前に覚えておきたい技術
はじめての3Dゲーム開発
アクションゲームアルゴリズムマニアックス
関連記事
正常にインストールでき、助かりましたー。
有難うございます。
インストールに失敗した場合、ファイルはコピーされても、アンインストールできなかったので、すっきりしませんでした。
“改めて、最新の再頒布可能パッケージを単独インストール” → “Download: Microsoft Visual C++ 2010 再頒布可能パッケージ (x64) http://support.microsoft.com/kb/2467173” では、当方の環境( Win8 Pro. )で最新版になりませんでした。
“Microsoft Visual C++ 2010 Service Pack 1 再頒布可能パッケージ MFC のセキュリティ更新プログラム”
http://www.microsoft.com/ja-jp/download/details.aspx?id=26999 が正しかったです。
> 64bit版のWindowsを使用している。
> (32bit版でも起きるかも…? 環境が無いので詳細不明)
Windows 7 32bit でも再現しました。
Windows 7 32bit ですが現象発生しまして
こちらのサイトで助かりました
無事にインストールできました。
強く感謝申し上げます。
DirectX9はこれであきらめるかと夜も眠れないほど
悩んでおりましたが、本当に救われました。
ありがとうございました。
このエラーが出たとしても、特に対処せずともエラーが出なかった時と同様に開発できる事を確認できました。
失敗内容が「VC++2010のDLL再頒布版のインストール不能」だけだとしたら、当然 開発できるに決まっていますが…。