.NET Framework ツールはいずこ

VS2005 と VS2008 が混在しているマシンにて。

wsdl.exe や、 sn.exe などのいわゆる .NET Framework ツール が、VS2008 のコマンドプロンプトから動作しない。見つかりませんエラーになる。

マシンによっては正常に動いているので、比較しながら調査。

VS2005の場合、C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin フォルダを参照している。Visual Studio コマンドプロンプトで Path 通っている。

VS2008 で正常動作マシンの場合、C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin フォルダを参照している。正常マシンでは Visual Studio コマンドプロンプトで Path 通っている。しかし動作しないマシンでは Path が通っていない。

動作しないマシンで、C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin を見るとツール類のファイルは存在している。


つまり原因は、Visual Studio コマンドプロンプトにて Path が通っていない、と。

ではどこで Path を追加すればいいのかな、と。

たどった結果、C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat で Path 設定を行っているのでは、と推測。

.NET Framework SDK のフォルダをレジストリから参照しているみたい。
HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows

どうやら、本来ここには v6.0A というキーが無ければならないのだが、問題のあるマシンでは v2.0 となっていた。おまえが犯人か−!

v2.0のキーを削除して、正常マシンからレジストリの該当部分をエクスポート。中身は

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\"
"ProductVersion"="6.0.6001.17011"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\VistaClientHeadersLibs]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\"
"ProductVersion"="6.0.6001.17011"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\VistaClientSDKTools]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\"
"ProductVersion"="6.0.6001.17011"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\VistaClientWin32Tools]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\"
"ProductVersion"="6.0.6001.17011"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKIntellisenseRefAssys]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\"
"ProductVersion"="6.0.6001.17011"
"ComponentName"="Windows SDK Intellisense and Reference Assemblies"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A\WinSDKNetFxTools]
"InstallationFolder"="C:\\Program Files\\Microsoft SDKs\\Windows\\v6.0A\\"
"ProductVersion"="6.0A"


取り込んで(結合して)マシン再起動。さあどうだ。

・・・

ざ、残念ながら変化なし。むむ。頭を冷やして再挑戦かな。