TFS 2010 API:无法从ProjectCollection服务器获取IBuildServer

本文关键字:ProjectCollection 服务器 获取 IBuildServer 2010 API TFS | 更新日期: 2023-09-27 17:58:40

我正在尝试提升现有的投递,在将投递文件夹部署到目标环境之前,需要验证给定的内部版本名称/编号是否有效(状态和质量)。

基于这样的博客(http://www.woodwardweb.com/dotnet/tfs_build_api_b.html)我正试图像这样连接到我的构建服务器,但没有成功:

string tfsProjectCollectionUrl = @"http://collectionServer:8080/tfs/collection";
var tfs = TeamFoundationServerFactory.GetServer(tfsProjectCollectionUrl); 
tfs.EnsureAuthenticated();
IBuildServer tfsBuildServer = tfs.GetService<IBuildServer>();
//tfsBuildServer == null

我有两个服务器,Collection和Build。生成时的TFS管理控制台显示"为collectionServer''collection配置的生成服务"。不确定我在这里错过了什么。


更新:
我利用了MSDN支持资源,因为这有点时间紧迫,并通过将这些操作提取到外部程序集取得了一些进展。我获取集合的方法似乎很好,只是在CodeActivity内部生活不愉快。现在,CodeActivity调用这个外部程序集,并返回我的dropPathToPromote,或者在不满足状态和质量条件时抛出异常。

这在测试线束工作流中运行良好,但在飞行中则不然。我在执行构建的前6-7秒内收到此错误:
Could not load file or assembly 'MyTFSAPICallingAssembly.dll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

新程序集包含在我的自定义程序集VCS文件夹中,以便生成控制器拾取,代理临时文件夹将使用这些dll(所有外部程序集和我的自定义文件集)进行更新,新的生成定义将毫无例外地呈现包括此CodeActivity的流程模板,和引用我的根自定义程序集的其他生成定义执行时不会失败。

TFS 2010 API:无法从ProjectCollection服务器获取IBuildServer

好吧,我觉得自己像个傻瓜。我放入TFS API代码的程序集上的平台被标记为"x86",而调用CodeActivity程序集是"Any CPU"。一旦修复,构建执行得很好。我仍然有一些辅助构建失败需要清理,但我的问题似乎已经解决了。

您应该从项目集合获取服务

TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri(@"http://collectionServer:8080/tfs/collection"));
IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer));
相关文章:
  • 没有找到相关文章