当店は Team Foundation 2005 サーバーでセットアップされていますが、すべての開発作業は Visual Studio 2008 で行われます。
私ができるようにしたいのは、特定のビルド定義のビルド履歴を調べ、テスト結果を抽出して、チーム ビルドが実際には提供しない種類のきれいなグラフを生成するプログラムを作成することです。
ただし、TFS API からビルド サービスを取得するのに問題があります。VS2008 で TeamFoundationClient dll を参照すると、明らかに TFS2008 クライアント オブジェクトが取得され、TFS2005 では接続できますが、2008 Build Server サービスに問い合わせることはできません。
TeamFoundationServer teamServer = TeamFoundationServerFactory.GetServer(m_tfsServerName);
teamServer.EnsureAuthenticated();
IBuildServer buildServer;
try
{
buildServer = (IBuildServer)teamServer.GetService(typeof(IBuildServer));
}
catch(Exception ex)
{
// Error thrown:
// System.NotSupportedException
// "TF214015: The build client object model does not support Team Foundation Server 2005."
}
2005 API の使用に関する次の投稿を見つけました: http://notsosmartbuilder.blogspot.com/2006/12/get-build-changes-changesetdata.html
ただし、BuildStore オブジェクトは 2008 クライアント オブジェクト モデルの一部ではなくなりました。2005 クライアント DLL に何らかの方法でアクセスできますか? 開発者のマシンに Team Explorer をインストールして VS2005 を入手できますが、もっと簡単な方法はありますか? VS2008 プロジェクトの 2005 インストールから特定の DLL (どれ??) を参照することもできますか、それとも VS2005 で単純に開発する方が簡単ですか?
私が試すことができる他の代替アプローチはありますか? (ビルド時に情報を収集し、それを自分で保存する BuildLoggers; .trx ファイルを解析する方法 (単体テストの実行ごとに複数の trx ファイルがあることは言及しましたか?); TFS レポートを使用する (レポート サービスは壊れています)私たちの TFS インストール) など?)