在TFS 2010中构建失败后,在同一代理上的所有构建都会失败,直到服务重新启动

时间:2014-12-18 17:25:17

标签: vb.net build tfs2010 workflow-foundation

这是我之前发布的一个问题的扩展,我在这里发布了这个问题:VB.Net Method appears to be called multiple times when it actually isn't, and returns inconsistent results

当时我认为这个问题已经完全解决了,但我已经知道存在多个问题。我已经用代码和逻辑解决了所有问题,现在我已经缩小了最后一个问题。

构建将完全正常运行,直到合法地失败。在此之后,即使后续构建中没有实际错误,该特定代理上的所有构建也将失败。当他们失败时,我会看到与我在其他主题中所做的完全相同的症状,我将在此总结:

  • 只有一次调用的方法似乎被多次调用,如构建消息
  • 所示
  • 构建消息将显示有1个错误,但该方法生成的日志中没有错误(将错误写入日志的行紧接在将错误添加到结果日志的行之后,在同一个if语句中)
  • 在构建服务器上重新启动构建服务“修复”问题,直到下次构建合法失败,此时循环再次启动

构建服务器设置:

  • Windows Server 2008 R2
  • VS 2010 Premium
  • Build使用自定义库
  • 有4个构建代理,每个环境一个(Dev,QA,UAT,Prod)

构建和部署自定义库是使用.Net Framework 4.5在VB中编写的,它还调用另一个使用.Net Framework 4.5编写的库。

构建模板不使用msbuild。它是严格的WF,已被剥离到最低限度,只调用命令行程序(如robocopy)或自定义.net类。

我已经验证过,如果某个代理(例如Dev)的构建失败,那么使用该代理的所有构建都将失败。当它发生时,仅在该特定代理上运行的构建将失败,其他代理运行正常。如果只是重新启动代理将“修复”它,或者我必须重新启动整个服务,我还没有机会测试。

我已经尝试为运行构建的用户帐户清除Visual Studio缓存,但这根本没有帮助。我还有一个GUI界面,我设计了与构建完全相同的东西,并使用了所有相同的代码,我无法让它重复这个行为。

我已经按照以下步骤在构建控制器上启用了日志:How to enable build agent or build controller’s logs?但是当发生此问题时它们没有帮助(没有记录错误,对于构建的日志没有任何不同那些漏洞了)

我不确定我的下一个故障排除步骤应该是什么,我知道问题不在于我的代码,而且我没有运气通过Google,MSDN,StackOverflow搜索互联网,或者挑选我的大脑其他组织的同行。

我想知道这是否可能是由于在TFS 2010版本中运行需要.Net Framework 4.5的代码而导致的错误,因为它只能正式支持最多4.0。

1 个答案:

答案 0 :(得分:0)

我的建议是将构建记录器更改为诊断并查看输出,必须在环境中添加一些垃圾。

您可以使用

之类的开关执行此操作
/l:FileLogger,Microsoft.Build.Engine;logfile=c:\build.log;Verbosity=Diagnostic

你可能想看看here