Windows SDK for Windows 7 (v7.0) とVS2005でビルドエラー
Windows SDK for Windows 7 (v7.0)のリリースノートによると、既知の問題の5.1.2項目に「SDK Build Environment may Fail on X86 XP with VS2005」があります。
発生に条件があるので、注意が必要です。
開発マシンでビルドが成功するのに、ビルドマシンでエラーなんて事が想定されます。
発生条件
次の条件に当てはまる場合Windows SDKのコマンドラインビルド環境でエラーが発生する。
- x86マシンWindows XPを実行
REG.exeのバージョンが5.1.2600.2180 - Visual Studio 2005がインストールされている
Visual Studio 2008は未インストール
確認
SDKのコマンドウィンドウでcl.exeを実行すると次のメッセージが表示される事で確認できる。
- This application has failed to start because mspdb80.dll was not found.
- Re-installing the application may fix this problem.
原因
SDKのビルド環境ウィンドウが開くとき、SetEnv.cmdがReg.exeを実行する。
Reg.exeは正しいKeyPathが指定されていれば標準出力に生成し、不正な場合はエラーを標準エラーに書き込む。
上記の条件ではKeyPathは正しいが、値が存在しない。
詳しくは、Windows SDK blog post on this issueを参照。
回避方法
SetEnv.cmdを手動で編集して、2回目のREG呼び出しを削除する。
- C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd をエディタで開く。
- FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%VSRegKeyPath%" /v 9.0') DO SET VSRoot=%%B
の行をREMでコメント化するか、削除する。
REM FOR /F "tokens=2* delims= " %%A IN ('REG QUERY "%VSRegKeyPath%" /v 9.0') DO SET VSRoot=%%B - 保存する
- Windows SDK コマンドプロンプトを再度開く

コメント