关于TFS 2013每日编译警告是否存入数据仓库的技术问询
确认TFS 2013数据仓库是否存储全部代码分析警告
首先直接给你结论:默认配置下,TFS 2013的数据仓库不会把每日产生的80000条代码分析警告全部存入FactBuildProject表。下面给你拆解具体原因和细节:
FactBuildProject的定位是存储构建项目级别的汇总数据,比如构建成功/失败状态、总耗时、错误和警告的总计数,而不是每条警告的详细记录。也就是说,它只会告诉你这次构建有80000条符合规则的警告,但不会把每条警告的具体内容、位置等信息都存进去。- TFS 2013有默认的警告捕获限制:构建过程中默认只记录前100条代码分析警告(这个阈值可以在构建定义里调整,但即使调高,也可能因为构建服务器的性能瓶颈,无法完整捕获80000条这么大的量)。超出阈值的警告不会被写入数据仓库。
如果你的业务需求是要监控每条警告的整改进度,或者需要精确跟踪每日警告的变化细节,仅靠默认的FactBuildProject表是不够的,这里给你几个可行的方案:
- 先调整构建定义的代码分析设置:找到构建定义中的代码分析配置,提高警告捕获的上限值,但要注意,这个值太高可能会拖慢构建速度,甚至导致构建失败,需要根据服务器性能测试调整。
- 自定义构建任务:在构建过程中添加一个步骤,将代码分析的完整结果导出为XML或CSV格式的文件,然后编写脚本把这些数据导入到你自己的自定义数据库表中,再基于这个表生成需要的图表和进度报告。
- 扩展TFS数据仓库:通过编写自定义的仓库适配器(Warehouse Adapter),让数据仓库能够捕获并存储更多代码分析的详细数据,但这个方案需要一定的.NET开发经验,适配TFS 2013的仓库架构。
内容的提问来源于stack exchange,提问作者Siraf
相关产品推荐
相关产品推荐

