将多节点msbuild输出解析为单个节点的简单方法?

时间:2011-05-05 16:26:05

标签: msbuild customization

我有一百多个VC ++项目的解决方案。当我使用VS 2010或命令行构建时,输出显示数百个节点同时吐出输出。

例如:

1> ------重建全部启动:项目:abc,配置:调试Win32 ------ 2> ------重建全部启动:项目:ami,配置:调试Win32 ------ 3> ------重建全部启动:项目:pqr,配置:调试Win32 ------ 3 GT; stdafx.cpp 1 GT; stdafx.cpp 2 - ; stdafx.cpp 3 GT; ViewTree.cpp 1 GT; ViewTree.cpp 3 GT; PropertiesWnd.cpp 2 - ; ViewTree.cpp 1 GT; PropertiesWnd.cpp 2 - ; PropertiesWnd.cpp 3 GT; pqrView.cpp 1 GT; OutputWnd.cpp 3 GT; pqrDoc.cpp 2 - ; OutputWnd.cpp 1 GT; MainFrm.cpp中 3 GT; pqr.cpp 1 GT; FileView.cpp 2 - ; MainFrm.cpp中 3 GT; OutputWnd.cpp 3 GT; MainFrm.cpp中 1 GT; ClassView.cpp 2 - ; FileView.cpp 3 GT; FileView.cpp 1 GT; CHILDFRM.CPP 2 - ; ClassView.cpp 3 GT; ClassView.cpp 1 GT; abcView.cpp 2 - ; CHILDFRM.CPP 1 GT; abcDoc.cpp 3 GT; CHILDFRM.CPP 2 - ; amiView.cpp 1 GT; abc.cpp 3 GT;生成代码...... 2 - ; amiDoc.cpp 1 GT;生成代码...... 2 - ; ami.cpp 2 - ;生成代码...... 1 GT; abc.vcxproj - > C:\ TEMP \ AMI \调试\ abc.exe 2 - ; ami.vcxproj - > C:\ TEMP \ AMI \调试\ ami.exe 3 GT; pqr.vcxproj - > C:\ TEMP \ AMI \调试\ pqr.exe ==========重建全部:3成功,0失败,0跳过==========

问题是如何make(将此输出解析为按其编号分组的节点。

例如:

1> ------重建全部启动:项目:abc,配置:调试Win32 ------ 1 GT; stdafx.cpp 1 GT; ViewTree.cpp 1 GT; PropertiesWnd.cpp 1 GT; OutputWnd.cpp 1 GT; MainFrm.cpp中 1 GT; FileView.cpp 1 GT; ClassView.cpp 1 GT; CHILDFRM.CPP 1 GT; abcView.cpp 1 GT; abcDoc.cpp 1 GT; abc.cpp 1 GT;生成代码...... 1 GT; abc.vcxproj - > C:\ TEMP \ AMI \调试\ abc.exe

2> ------重建全部启动:项目:ami,配置:调试Win32 ------ 2 - ; stdafx.cpp 2 - ; ViewTree.cpp 2 - ; PropertiesWnd.cpp 2 - ; OutputWnd.cpp 2 - ; MainFrm.cpp中 2 - ; FileView.cpp 2 - ; ClassView.cpp 2 - ; CHILDFRM.CPP 2 - ; amiView.cpp 2 - ; amiDoc.cpp 2 - ; ami.cpp 2 - ;生成代码...... 2 - ; ami.vcxproj - > C:\ TEMP \ AMI \调试\ ami.exe

3> ------重建全部启动:项目:pqr,配置:调试Win32 ------ 3 GT; stdafx.cpp 3 GT; ViewTree.cpp 3 GT; PropertiesWnd.cpp 3 GT; pqrView.cpp 3 GT; pqrDoc.cpp 3 GT; pqr.cpp 3 GT; OutputWnd.cpp 3 GT; MainFrm.cpp中 3 GT; FileView.cpp 3 GT; ClassView.cpp 3 GT; CHILDFRM.CPP 3 GT;生成代码...... 3 GT; pqr.vcxproj - > C:\ TEMP \ AMI \调试\ pqr.exe

==========重建全部:3成功,0失败,0跳过==========

这是必要的,以便我可以查看确切的失败项目,并且它是失败的cpp文件。我还需要像失败的项目一样的摘要:abc,xyz ......

有没有一种快速的方法来实现这一点,而不是写一个300美元的插件?

2 个答案:

答案 0 :(得分:0)

VSCommands免费版可以做很多事情。

或者在工具|选项|项目和解决方案

中关闭/设置并行度为1

或者使用Powershell解析文件日志,并在Post构建步骤或MSBuild目标中触发它。

答案 1 :(得分:0)

不确定这是否是您所需要的,但在“输出”窗口的Visual Studio中,您可以选择“显示输出来自:构建顺序”。默认情况下,它被选择为“显示来自:Build的输出”,这是未订购的。