我正在尝试使用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工作流程的最终方法是什么?
答案 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,因为使用后两个命令会导致执行完成而不是在断点处停止(至少在我的设置中)。