Windows SDK 7.1のインストール時のはまりポイント

新しいPCにWindows SDK 7.1をインストールしようとしてはまった。何度も同じはまり方をしてるのでまとめておく。

そもそもWindows SDK 7.1は何に使うのか

Visual C++ 2010 Expressにはx64用のコンパイラが入っていないので、Windows SDK 7.1に同梱されているコンパイラを使う。Windows SDK 7.1をインストールして、ターゲットプラットフォームに指定すると、Visual C++ 2010 Expressで64bitのアプリケーションを開発できる。

なぜインストール時にはまるのか

とにかくWindows SDK 7.1よりあとにリリースされたものが入っているとうまくいかない。

Visual C++ 2010のランタイムをアンインストールする

Visual C++ 2010のランタイムの

この二つのどちらかあるいは両方が新しくなっていると、インストールに失敗して以下のメッセージがダイアログに出る。

Installation of the “Microsoft Windows SDKfor Windows 7” product has reported the following error: Please refer to Samples\Setup\HTML\ConfigDetails.htm document for further information.

ログには以下のいずれかが出力される。

C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\SFX\vcredist_x86.exe installation failed with return code 5100
C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\SFX\vcredist_x64.exe installation failed with return code 5100

Windows SDK 7.1をインストールするときはこれらを事前にアンインストールする。詳細はkb2717426を参照。

Visual Studio 2010 SP1をアンインストールする

Visual Studio 2010 SP1がインストールされているとコンパイラが新しくなるため、Windows SDK 7.1のインストーラーが古いコンパイラをインストールしようとして失敗してしまう。ログには以下のエラーのいずれかが出力される。

"Microsoft Windows SDK for Windows 7 Compilers for x86" 製品のインストールで次のエラーが報告されました: インストール中に致命的なエラーが発生しました。
"Microsoft Windows SDK for Windows 7 Compilers for x64" 製品のインストールで次のエラーが報告されました: インストール中に致命的なエラーが発生しました。

これを避けるためには、Visual Studio 2010 SP1をアンインストールする。詳細はVisual Studio 2010 SP1 リリース ノートを参照。

Windows SDK 7.1のSP1用のコンパイラを追加する

Visual Studio 2010のランタイムとVisual Studio 2010 SP1をアンインストールしてからWindows SDK 7.1をインストールすると、インストールには成功する。

そこからVisual C++ 2010 Expressに対してVisual Studio 2010 SP1をインストールすると、Windows SDK 7.1のx64用のコンパイラが削除されてしまう。そのためVisual C++ 2010 SP1 Compiler Update for Windows SDK 7.1 パッケージを追加する必要がある。Visual Studio 2010 Professionalの場合は大丈夫。詳細はkb2519277を参照。

今後の課題

二度とこのページを必要としないように、古いビルド環境を前提としているあれをあれする。