使MSBuild检测并提取非ms工具的错误和警告

使MSBuild检测并提取非ms工具的错误和警告,msbuild,tfsbuild,Msbuild,Tfsbuild,MSBuild生成完成后,驱动程序将提取警告和错误消息,并打印错误摘要。但是,它只能识别自己和Microsoft编译器使用的错误格式。但我们也为其他平台构建,其中错误来自CLang、Make和Javac,每种格式都不同 有没有一种方法可以让MSBuild识别这些错误,或者,有什么方法可以将其他错误转换为Microsoft格式,以便它们进入摘要 完整日志非常长,更糟糕的是,TFS生成服务器并没有显示所有日志,只显示被识别为特定严重性级别的消息,因此访问跨平台生成的错误是相当多的额外工作。在Msbu

MSBuild生成完成后,驱动程序将提取警告和错误消息,并打印错误摘要。但是,它只能识别自己和Microsoft编译器使用的错误格式。但我们也为其他平台构建,其中错误来自CLang、Make和Javac,每种格式都不同

有没有一种方法可以让MSBuild识别这些错误,或者,有什么方法可以将其他错误转换为Microsoft格式,以便它们进入摘要


完整日志非常长,更糟糕的是,TFS生成服务器并没有显示所有日志,只显示被识别为特定严重性级别的消息,因此访问跨平台生成的错误是相当多的额外工作。

在Msbuild文件中,您可能使用
调用这些其他工具。您可以向exec标记添加以下属性:

IgnoreStandardErrorWarningFormat=true 
CustomErrorRegularExpression="^ERROR" 
CustomWarningRegularExpression="^WARN"
不幸的是,您将失去包含文件名和行号的选项,因此Visual Studio和Team Build将无法从日志跳转到违反规则的文件。

VS使用
():error
用于识别文件/行号的格式,因此如果需要,可以使用自定义记录器解析每个日志行并转换clang/cmake/。。。将错误转换为此格式。