诊断生成问题

诊断并修复生成问题是软件开发中的常规任务。 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,则“诊断”菜单不会显示在生成结果窗口中,但是您仍可以在生成完成时在放置文件夹中查看诊断日志。

检查您的生成系统和调试您的生成过程

某些问题可能是由您的本地生成系统导致的。

提示

尝试将您的开发计算机部署为生成服务器,以便可以更轻松地直接访问生成过程运行于的环境。请参见部署和配置生成服务器

检查您的生成系统组件

确保正确配置生成服务器、控制器和代理。 请参见部署和配置生成服务器部署和配置生成控制器部署和配置生成代理

登录到生成服务器并确认其正常工作。 您还可以在生成服务器上查看详细的诊断数据。 请参见管理生成系统

生成服务器上的调试生成过程

若要诊断由自定义生成过程活动或未捕获的异常导致的问题,请尝试在您的生成服务器上调试生成过程。

  1. 登录到生成服务器。

  2. 以管理员身份运行 Visual Studio。

  3. 在 Visual Studio 中,从菜单栏中选择**“工具”“附加到进程”**。

  4. 在**“附加到进程”**对话框上:

    1. 选择**“显示来自所有用户的进程”**。

    2. 选择**“TFSBuildServiceHost.exe”**。

    3. 选择**“附加”**。

  5. 从菜单栏选择**“调试”“异常”。 在“异常”对话框中,选择“公共语言运行时异常”。 选择“确定”**。

  6. 从菜单栏选择**“工具”“选项”。 在“选项”对话框的树状窗格中,选择“调试”。 在“常规”列表中,清除“启用‘仅我的代码’”复选框。 选择“确定”**。

  7. 在 Visual Studio 中,对生成进行排队,并确保其在生成控制器和生成服务器上运行,这些生成控制器和生成服务器都托管于已启用调试器的生成服务器上。

您现在可以调试生成过程中引发的异常,也可以设置断点和调试自定义生成过程活动。 请参见使用 Visual Studio 进行调试

提示

  • 提示 在诊断与生成过程相关的问题时,可以通过将其暂停直到可修复过程为止,来避免您和您的团队遇到问题:

    • 编辑生成定义,然后在**“常规”选项卡的底部选择“已暂停”**。

    • 若要测试对生成过程的修复,请选择排队的生成,打开其上下文菜单,然后选择**“立即启动”**。

  • 提示如果您认为其中一个生成系统组件可能会导致出现某个问题,则可根据需要启动、停止或重新启动生成服务器,或者启用或禁用控制器或代理。 请参见管理生成系统

  • 提示通常,当尝试修复生成过程问题时,您需要重复排队具有相同选项的生成以测试各种修复。 可以快速重试生成:

    • 生成结果窗口实现此操作,方式是选择**“操作”“重试生成”**。

    • 从团队资源管理器中的“生成”页或从生成资源管理器中实现此操作,方式是选择已完成的生成、打开其上下文菜单并选择**“重试生成”**。

  • 提示您是否正在使用托管生成控制器? 请参见使用托管生成控制器