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

Jan*_*dec 3 msbuild tfsbuild

当 MSBuild 构建完成时,驱动程序会提取警告和错误消息并打印错误摘要。然而,它只能识别它本身和 Microsoft 编译器使用的错误格式。但我们也针对其他平台进行构建,其中错误来自 CLang、Make 和 Javac,每种平台的格式都不同。

有没有办法告诉 MSBuild 识别这些错误,或者可以将其他错误转换为 Microsoft 格式,以便他们获得摘要?

完整日志确实很长,更糟糕的是,TFS 构建服务器不会显示全部日志,只显示被识别为特定严重级别的消息,因此从跨平台构建访问错误是相当多的额外工作。

jes*_*ing 6

在您的 Msbuild 文件中,您可能会<exec>用来调用这些其他工具。您可以将以下属性添加到 exec 标记:

IgnoreStandardErrorWarningFormat=true 
CustomErrorRegularExpression="^ERROR" 
CustomWarningRegularExpression="^WARN"
Run Code Online (Sandbox Code Playgroud)

不幸的是,您将失去包含文件名和行号的选项,因此 Visual Studio 和 Team Build 将无法从日志跳转到违规文件。

  • VS 使用 `&lt;filename&gt;(&lt;line&gt;): error &lt;code&gt;: &lt;message&gt;` 格式来识别文件/行号,因此如果需要,可以使用自定义记录器来解析每个日志行并转换 clang/ cmake/...这种格式出现错误。 (4认同)