TechEd2010が終わってから、TFS2010をいろいろ使ってみてる今日この頃です。
最近仕事ではJavaなプロジェクトが増えてきたので、
・TFS2010サーバ
・別にビルドサーバ(2003 R2 SP2/2008 R2)を構築(+TFS Build Extensions Power Tool)
・クライアントはWin7でEclipse+Everywhere
という環境を作ってるのですが、ちょっと残念なことが発生。
クライアント(Eclipse)からWindows Server 2003 R2のビルドエージェントに対してビルドを実行してしばらくたつとエラー終了。ビルド結果を見ると、
E:\App\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions\Microsoft.TeamFoundation.Build.Extensions.Ant.targets – 1 エラー、0 警告、 ログ ファイルの表示
E:\App\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions\Microsoft.TeamFoundation.Build.Extensions.Ant.targets (208): "Microsoft.TeamFoundation.Build.Extensions.Tasks.Ant"
タスクをアセンブリ C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions\Microsoft.TeamFoundation.Build.Extensions.Tasks.dll から読み込めませんでした。
ファイルまたはアセンブリ ‘file:///C:\Program Files\MSBuild\Microsoft\VisualStudio\v10.0\BuildExtensions\Microsoft.TeamFoundation.Build.Extensions.Tasks.dll’、またはその依存関係の 1 つが読み込めませんでした。
指定されたファイルが見つかりません。 <UsingTask> 宣言が正しいこと、アセンブリとその依存関係が使用可能であること、および Microsoft.Build.Framework.ITask を実装するパブリック クラスがタスクに含まれていることを確認してください。
以下...(ーー゛)
参照DLL(Microsoft.TeamFoundation.Build.Extensions.Tasks.dll)はちゃんと存在しているので、依存関係かいな?ということで、Dependency Walkerで調査。
すると、「IESHIMS.DLL」と「WER.DLL」がない!!
知ってる人は知ってるこのDLL、そうです。IE8をインストールすることで参照されるDLLです。しかも、回避手段なし!
→IE8をアンインストールしようとすると、.NET Framework 4まで道連れにしようとします。
(インストール順に関連するかもしれませんが)
.NETのビルドももしかするとNGかもしれません。
→Dependency WalkerでMSBuild.exeを見てみたら、しっかり「IESHIMS.DLL」「WER.DLL」がないと怒られました。でも、Visual Studio 2010のシステム要件に2003 R2 SP2/XP SP3が含まれているので、動くような気がします。
※一応、Windows Updateで「優先度の高い更新プログラム」は全部入っている環境ですので、Windows Updateでは解決できなさそうです。
Windows Server 2003 R2/Windows XPでビルド環境を構築するときには、IE8抜きがおすすめです。
というか、「Windows Server 2008 32bitでいいだろ!」って感じもしますが。