升级至TFS2015后无法使用TFS2010 XAML构建控制器排队构建
解决TFS2010 XAML构建控制器在TFS2015中无法识别及报错TF900560的方案
我之前帮不少同行排查过TFS跨版本兼容构建控制器的问题,你遇到的这个情况其实挺典型的,咱们一步步来捋清楚解决办法:
1. 先确认构建控制器的兼容性基础
TFS2015对旧版本的XAML构建控制器有明确的兼容性要求,先检查这两点:
- 你的TFS2010构建控制器必须安装TFS2010 SP1及以上更新包,没升级的SP0版本和TFS2015的兼容性极差,大概率会触发这类空引用错误
- 构建控制器所在服务器的操作系统得符合TFS2015的要求,比如至少是Windows Server 2008 R2,旧系统可能会导致底层交互异常
2. 重新注册构建控制器试试
升级过程中注册信息很容易出现异常,建议彻底重新注册一遍:
- 打开TFS2010构建服务器上的Team Foundation Server Administration Console
- 找到目标构建控制器,右键选“停止”,等完全停稳后再删除(放心,不会删掉已有的构建定义,只是移除和TFS2015的关联)
- 重新创建构建控制器,注册时务必选对TFS2015的服务器URL,格式一般是
http://tfs2015-server:8080/tfs/你的集合名 - 启动控制器,等状态变成“运行中”后,刷新TFS2015的构建页面看看能不能找到
3. 检查服务账户的权限配置
空引用错误很多时候是权限不足导致的,别忽略这点:
- 运行TFS2010构建控制器的服务账户,得在TFS2015服务器上拥有**“构建服务账户”权限**,还要添加到对应项目集合的“构建管理员”组里
- 同时要确保这个账户对TFS2015的配置数据库和集合数据库有读写权限,可以去SQL Server Management Studio里核实一下
4. 清理构建服务的本地缓存
缓存损坏也会导致控制器识别异常,试试清理缓存:
- 先停掉TFS2010构建控制器服务
- 删除构建服务器上的缓存文件夹,路径一般是:
C:\Users\<服务账户名>\AppData\Local\Microsoft\Team Foundation\4.0\Cache - 重启构建控制器服务,等系统重新生成缓存后再测试
5. 给TFS2015打上最新更新补丁
TFS2015本身有不少针对XAML构建兼容性的修复补丁,建议安装最新的Update(比如Update 4及以上版本),很多旧版本的兼容性bug在更新后都会被解决
6. 查看详细日志定位根源
如果前面的步骤都没用,就得靠日志找问题了:
- 在TFS2015应用层服务器上,打开事件查看器,找到“Team Foundation Server”日志,查看报错时的详细堆栈信息
- 同时查看构建控制器所在服务器的TFS构建服务日志,路径通常是:
C:\Program Files\Microsoft Team Foundation Server 2010\Application Tier\Build Service\Logs
额外提一句:TFS2015之后微软逐步弱化XAML构建,转向Build vNext系统,要是长期使用的话,建议慢慢把构建定义迁移到新系统,避免后续版本的兼容性麻烦。
内容的提问来源于stack exchange,提问作者Mohan Krishna
相关产品推荐
相关产品推荐

