.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"
取り込んで(結合して)マシン再起動。さあどうだ。
・・・
ざ、残念ながら変化なし。むむ。頭を冷やして再挑戦かな。