Visual Studio 2008 から Team Build 2005 でレポート API をビルドする
-
26-09-2019 - |
質問
私たちのショップは 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 を入手できますが、もっと簡単な方法はありますか?2005 インストールの特定の DLL (どれ??) を VS2008 プロジェクトから参照することもできますか? それとも、単に VS2005 で開発する方が簡単でしょうか?
試してみることができる他の代替アプローチはありますか?(BuildLoggers はビルド時に情報を収集し、それを自分で保存します。.trx ファイルを解析する方法 (単体テストの実行ごとに複数の trx ファイルがあることは言いましたか?)。TFS レポートを使用する (ただし、レポート サービスは TFS インストール上で壊れています) など?)
解決
Team Explorer 2005 をインストールすると、VS2008 から必要な DLL にアクセスできます。ただし、それらは VS2008 の [参照の追加] ダイアログの [.NET] タブには表示されず、Team Explorer 2005 のインストールされたフォルダーでそれらを参照する必要がありました。
私は VS2005 をインストールしていたので、DLL は Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ にありました。
ビルド履歴の基本的な列挙とテスト結果の確認のために参照を追加する必要がある DLL は次のとおりです。
- Microsoft.TeamFoundation.Client
- Microsoft.TeamFoundation.Common
- Microsoft.TeamFoundation.Build.Client
- Microsoft.TeamFoundation.Build.Common