使用Visual Studio调试TFS工作流

时间:2014-03-18 02:58:58

标签: visual-studio debugging tfs visual-studio-2013

我正在尝试使用visual studio逐步完成TFS工作流程构建过程。关于如何设置它,我跟随了众多公会。我已尝试在TFS 2010,TFS 2012和TFS 2013上进行远程调试和本地调试。每个都无法达到工作流中设置的断点(使用各自的工作流程和visual studio版本)。

目前在TFS 2013工作流程中,调试输出正在发送以下信息(重复约100次以上);

A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll  

正在加载调试符号;

TFSBuildServiceHost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll', Symbols loaded.

同样在每次其他运行中,我都会将以下内容写入调试:

Step into: Stepping over method without symbols 'System.Threading.ExecutionContext.RunInternal'

此符号未列为已加载。

how to setup TFS workflow debugging指南中所列,我将调试器附加到TFSBuildServiceHost.exe进程。在本地和远程中,此构建代理链接到同一TFS服务器。然后我运行构建,没有破坏点。

我还设置了visual studio调试器,从微软符号服务器加载符号并将它们存储在本地目录中。

通过visual studio调试TFS工作流程的最终方法是什么?

1 个答案:

答案 0 :(得分:0)

对于您在上面链接的文章的注释,必须在Run on Agent序列之前放置断点。如果放置了断点,则也会命中Run on Agent序列中的断点。

然而,我发现很难找到有用的信息。类型为System.Activities.Debugger.DebugInfo的名为debugInfo的变量出现在Locals窗口中,该窗口提供了一些信息。

更新

看起来变量和过程参数可以在:

中找到
  

debugInfo - >

     

非公开会员 - >

     

activityInstance - >

     

非公开会员 - >

     

System.Activities.Runtime.ActivityInstanceMap.IActivityReference.Activity - >

     

Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope - >

     

变量。

我猜测调试自定义活动可以使用这种方法在Run on Agent序列和所需位置之前有一个断点,但我还没有尝试过。

此外,当单步执行时,必须使用Step Into命令而不是Continue或Step Over,因为使用后两个命令会导致执行完成而不是在断点处停止(至少在我的设置中)。