诊断生成问题
诊断并修复生成问题是软件开发中的常规任务。 Team Foundation Build 提供了一些帮助你调试和解决问题的工具,例如:
生成失败或部分成功
异常、错误或警告
意外事件或结果
您希望做什么?
确定生成不运行的原因
在生成结果窗口中查找有关问题的信息
请求并查看诊断日志
检查您的生成系统和调试您的生成过程
获取更多提示信息
需要的权限
您必须是生成服务器上 Windows 管理员组的成员,还必须是您团队项目集上项目集生成管理员组的成员。 请参见 Team Foundation Server 权限参考。
确定生成不运行的原因
如果该生成是队列中的下一个(但仍未运行),请确保生成控制器和至少其中一个生成代理可用并且已启用。 如果生成过程具有生成代理筛选器,请确保满足条件的生成代理可用并已启用。 请参见管理生成系统、指定哪些生成代理处理您的生成和部署和配置生成代理。
在生成结果窗口中查找有关问题的信息
如果您的生成正在运行,在过程的某个部分停止或已完成,则您可以在生成结果窗口中获取有关这些问题的更多信息。 选择**“查看日志”**以显示详细信息:
若要直接跳到生成的问题,请选择**“下一个错误”或“下一个警告”**。
无论您在何处看到**“MSBuild 日志文件”**链接的实例,选择该链接即可详细了解 MSBuild 活动编译代码和执行其他任务时发生的事件。
您可以复制信息,如有需要,还能与可帮助您解决问题的人共享。 在日志中选择指定文本或从日志中的任何位置打开上下文菜单,然后选择**“全选”。 然后您可以打开上下文菜单并选择“复制”**以将文本复制到剪贴板。
查看诊断日志
如果您仍没有足够的信息诊断问题,则可查看更多详细诊断日志。 在生成结果窗口中,选择**“诊断”**,然后:
如果已完成生成,则选择**“截至‘date and time’的最终日志”**。
如果尚未完成生成,则选择**“请求日志”**。
该系统将汇编日志。
日志准备就绪后,请选择**“诊断”、“对于‘User who requested the log’截置‘date and time’”**。
如果生成阶段输出到 UNC 路径放置文件夹,则系统将打开包含诊断日志的放置文件夹子文件夹。 在打开放置文件夹或下载 .zip 文件后,可以查看下列日志之一:
从生成控制器:ActivityLog
从参与生成的每个生成代理:**ActivityLog.AgentScope.**Build_Agent_ID
对于由 MSBuild 活动编译的每个解决方案:Solution_Name
查看这些日志的最佳做法是将其复制到您的开发计算机并从那将其打开。
备注
如果使用的是 Visual Studio 2010,则“诊断”菜单不会显示在生成结果窗口中,但是您仍可以在生成完成时在放置文件夹中查看诊断日志。
检查您的生成系统和调试您的生成过程
某些问题可能是由您的本地生成系统导致的。
提示
尝试将您的开发计算机部署为生成服务器,以便可以更轻松地直接访问生成过程运行于的环境。请参见部署和配置生成服务器。
检查您的生成系统组件
确保正确配置生成服务器、控制器和代理。 请参见部署和配置生成服务器、部署和配置生成控制器和部署和配置生成代理。
登录到生成服务器并确认其正常工作。 您还可以在生成服务器上查看详细的诊断数据。 请参见管理生成系统。
生成服务器上的调试生成过程
若要诊断由自定义生成过程活动或未捕获的异常导致的问题,请尝试在您的生成服务器上调试生成过程。
登录到生成服务器。
以管理员身份运行 Visual Studio。
在 Visual Studio 中,从菜单栏中选择**“工具”和“附加到进程”**。
在**“附加到进程”**对话框上:
选择**“显示来自所有用户的进程”**。
选择**“TFSBuildServiceHost.exe”**。
选择**“附加”**。
从菜单栏选择**“调试”和“异常”。 在“异常”对话框中,选择“公共语言运行时异常”。 选择“确定”**。
从菜单栏选择**“工具”、“选项”。 在“选项”对话框的树状窗格中,选择“调试”。 在“常规”列表中,清除“启用‘仅我的代码’”复选框。 选择“确定”**。
在 Visual Studio 中,对生成进行排队,并确保其在生成控制器和生成服务器上运行,这些生成控制器和生成服务器都托管于已启用调试器的生成服务器上。
您现在可以调试生成过程中引发的异常,也可以设置断点和调试自定义生成过程活动。 请参见使用 Visual Studio 进行调试。