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のアプリケーションを開発できる。
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を参照。
今後の課題
二度とこのページを必要としないように、古いビルド環境を前提としているあれをあれする。