c# - TFS 2010 API : Unable to Get IBuildServer from ProjectCollection Server

标签 c# tfs tfsbuild

我正在尝试推广现有的 drop,并且需要在将 drop 文件夹部署到目标环境之前验证给定的构建名称/编号是否有效(状态和质量)。

基于这样的博客 ( 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。 Build 上的 TFS 管理控制台显示“为 collectionServer\collection 配置的构建服务”。不知道我在这里错过了什么。


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

这在测试工具工作流中运行良好,但在飞行中却不行。我在执行构建的前 6-7 秒内收到此错误:
无法加载文件或程序集“MyTFSAPICallingAssembly.dll,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null”或其依赖项之一。系统找不到指定的文件。

新程序集包含在我的 Custom Assemblies VCS 文件夹中,供 Build Controller 获取,Agent 临时文件夹使用这些 dll(所有外部程序集和我的自定义程序集)更新,新的 Build Definition 呈现流程模板毫无异常(exception)地包含此 CodeActivity,并且其他引用我的根自定义程序集的构建定义执行无误。

最佳答案

好吧,我觉得自己像个菜鸟。我放置 TFS API 代码的程序集上的平台被标记为“x86”,而调用 CodeActivity 程序集是“Any CPU”。一旦修复,构建就可以正常执行。我还有一些辅助构建失败需要清理,但看起来我的问题已经解决了。

关于c# - TFS 2010 API : Unable to Get IBuildServer from ProjectCollection Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14823175/

相关文章:

tfs - 如何在 TFS 2012 中将审核请求与多个变更集相关联

tfs - 在 TFS 构建中修改 web.config 中的设置

unit-testing - 使用AsConfigured,仍然能够在TFS中获取UnitTest结果

c++ - 改进 C++ MFC 代码的工具

c# - 无效的转换异常,没有重定向或警报

c# - AutoMapper 如何在获取抛出异常的属性时忽略异常?

c# - 如何在 ASP.NET 中使 List 变量常量

tfs - 在 TFS 2012 中隐藏 Sprint Board 中的 "Done"PBI

mercurial - 将代码从 Mercurial 移至 TFS

c# - 空引用异常 C#