管理生成信息和控制详细级别
更新:2011 年 4 月
您可获得以下与已完成生成有关的各种信息:
**生成如何运行?**生成是否成功? 生成何时启动? 生成运行了多长时间? 相对于之前的生成,此生成如何执行?
**生成了什么?**哪些解决方案、变更集和 Bug 修复进入了此生成?
**什么地方出错了?**出现了什么警告或错误? 哪些测试失败了?
当您定义生成过程时,可系统地控制每个已完成生成的存储信息详细级别。 或者,当您手动对生成的单次运行进行排队时,可控制它的详细级别。
主题内容
生成信息的产生和流动方式
定义生成过程
对生成过程进行排队和运行
产生、筛选和存储生成信息
检索生成信息
设置日志记录详细级别的生成过程参数
最佳做法:详细级别设置得越低越好
在运行生成时使用最低详细级别
在设计自定义生成过程模板时使用最低详细级别
更多信息
生成信息的产生和流动方式
定义生成过程
当您开发生成过程时,可系统地控制信息的详细级别。 当您创建或编辑基于 DefaultTemplate.xaml 或 UpgradeTemplate.xaml 的生成定义时,将显示**“过程”选项卡。 在“基本”节点的“日志记录详细级别”**列表中,您可选择一个值来指定此生成过程参数。
在内置模板不能满足您需求的情况下,您可开发自定义生成过程模板。 当您创建此类模板时,应仔细编写生成信息。 有关更多信息,请参见管理自定义生成过程模板中的生成详细级别。
对生成过程进行排队和运行
当您对基于 DefaultTemplate.xaml 或 UpgradeTemplate.xaml 的生成定义进行排队时,可手动重写**“日志记录详细级别”设置。 在“队列生成”对话框中,显示“参数”选项卡,展开“基本”节点,然后选择“日志记录详细级别”**列表中的某个值以指定此生成过程参数。 此值将应用于生成的单次运行。
产生、筛选和存储生成信息
生成系统将**“详细级别”**生成过程参数值传递到 Verbosity。 此属性用于通过以下来源的 Information,筛选记录和存储在数据仓库中的生成信息:
工作流活动:一些工作流活动在操作成功后生成消息,或者在操作失败后生成警告或错误。 例如,当**“SyncWorkspace”**活动从服务器下载源代码和其他文件到生成代理时,会生成低重要性的消息。 当此活动下载文件失败时,会生成错误。 另外一个示例是,OpenWorkItem 活动在创建工作项失败后会生成警告。
您可使用其他工作流活动直接编写自己的生成信息。 有关更多信息,请参见设计以所需最低详细级别编写信息的自定义生成过程模板。
MSBuild :生成过程使用**“MSBuild”活动来利用 MSBuild 编译二进制文件,执行其他重要任务。 此活动的“详细级别”**属性控制此过程生成并发布到以下位置的信息的详细级别:
数据仓库存储编译结果、错误和警告。
放置文件夹中的日志存储的信息与数据仓库存储的信息相同,另外,它还存储 MSBuild 产生的所有消息。
MSTest:生成过程使用**“MSTest”**活动来利用 MSTest.exe 运行测试。 此过程生成的所有消息均归类为具有高重要性值,并会发布到数据仓库和放置文件夹中的日志中。
检索生成信息
在生成运行的过程中以及在生成完成之后,您可从生成结果窗口中检索摘要和详细信息。 可将此信息从该窗口复制到剪贴板。 您还可直接链接到放置文件夹来检索日志、二进制文件和其他数据。
日志记录详细级别生成过程参数
在基于 DefaultTemplate.xaml 或 UpgradeTemplate.xaml 的生成过程中,您可使用**“日志记录详细级别”**生成过程参数来管理记录和存储的信息的详细级别。
下表列出了日志记录详细级别值及其对应的效果:
值 |
错误 |
警告 |
高重要性生成消息 |
一般重要性消息 |
低重要性消息 |
工作流活动属性(输入和输出) |
---|---|---|---|---|---|---|
最低 |
Y |
N |
N |
N |
N |
N |
正常 |
Y |
Y |
Y |
N |
N |
N |
详细 |
Y |
Y |
Y |
Y |
N |
N |
诊断(一般仅用于调试生成过程) |
Y |
Y |
Y |
Y |
Y |
Y |
最佳做法:详细级别设置得越低越好
虽然生成信息很重要,但记录过多信息的生成过程会导致问题。 这些问题可能包括在数据仓库中占用太多的存储空间,降低 Visual Studio 的性能,以及超出团队成员处理能力的大量信息会让他们不堪重负。
在运行生成时使用最低详细级别
当您运行生成时,一般应遵循最佳做法,即,使用仍能为您提供实现目标所需的信息的最低详细级别设置。
例如,您可能会运行一个生成来产生包括您最新的代码更改的二进制文件。 大多数情况下,**“正常”详细级别就可满足需要。 但是,当您解决生成过程 Bug 或异常代码编译错误时,可能就需要使用“详细”或“诊断”**详细级别。
在设计自定义生成过程模板时使用最低详细级别
生成过程的用户依赖详细级别筛选来减少信息负荷。 您可以采用以下方法,使此筛选更有效:
确保选择最合适的活动来编写消息:WriteBuildMessage 活动、WriteBuildWarning 活动 或 WriteBuildError 活动。
当您使用 WriteBuildMessage 活动 活动记录信息时,应用有目的性且一致的方式设置**“重要性”**属性。 当您对消息使用较高的重要性值时,应当意识到您可能会增加需要存储并提供给团队用户的数据量。
提示
如果您在“DoWhile”、“ForEach<T>”或“While”等循环结构内使用这些活动,则此类决策的影响将会特别大。
更多信息
Team Foundation Build 活动介绍本主题提及的生成过程工作流活动。
使用默认模板定义生成和使用升级模板定义生成提供有关如何创建生成定义的指导。
查看生成结果窗口提供有关如何使用生成结果窗口的指导。
IBuildDetail、BuildMessageImportance 和 BuildVerbosity 介绍提供生成信息功能的 Team Foundation Build API 的一些关键元素。
MSBuild 命令行参考介绍 MSBuild。
指定生成触发器和原因和将生成排入队列介绍如何自动和手动对生成进行排队。
修订记录
日期 |
修订记录 |
原因 |
---|---|---|
2011 年 4 月 |
新增主题。 |
信息补充。 |