C# と .NET Framework 4 を主にWindows Formのアプリケーション開発について

2009年9月24日

Windows SDK for Windows 7 (v7.0) とVS2005でビルドエラー 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のコマンドラインビルド環境でエラーが発生する。

  1. x86マシンWindows XPを実行
    REG.exeのバージョンが5.1.2600.2180
  2. Visual Studio 2005がインストールされている
    Visual Studio 2008は未インストール

確認

SDKのコマンドウィンドウでcl.exeを実行すると次のメッセージが表示される事で確認できる。

  1. This application has failed to start because mspdb80.dll was not found.  
  2. 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呼び出しを削除する。

  1. C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd をエディタで開く。
  2. 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
  3. 保存する
  4. Windows SDK コマンドプロンプトを再度開く

 

Windows SDK for Windows 7 のインストールとその他の既知の問題については過去記事を参照下さい。

コメント

トラックバックURL

このエントリーのトラックバックURL:
http://www.cs-dotnet.com/cgi-bin/mt-tb.cgi/332