0

我们的商店设置了 Team Foundation 2005 服务器,但所有开发工作都在 Visual Studio 2008 中完成。

我希望能够编写一个程序来检查给定构建定义的构建历史并提取测试结果以生成 Team Build 确实没有提供的那种漂亮的图表。

但是,我无法从 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 安装)等?)

4

1 回答 1

0

如果您安装 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
于 2010-10-18T03:35:09.473 回答