You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用MSBuild构建Visual Studio解决方案时配置类VS日志格式(含项目索引)及失败项目列表展示的方法

MSBuild命令行日志格式化与失败项目列表输出

一、让MSBuild日志输出和Visual Studio构建时一致(带项目索引前缀)

Visual Studio构建时的日志会带项目编号前缀,本质是它调用MSBuild时启用了特定的控制台日志选项。你只需要在自己的MSBuild命令里加两个关键参数就能复刻这个效果:

  • 加上/consoleloggerparameters:PrefixOutputWithProjectNumber:这个参数会强制每条日志行前带上对应项目的索引编号,和VS里的1>xxx6>xxx格式完全一致。
  • 调整日志详细度:你的原命令用了/verbosity:Minimal,这种低详细度会隐藏很多编译细节(比如单个源文件的编译日志)。如果想要和VS的输出完整度匹配,建议把详细度改成/verbosity:Normal——这也是VS默认使用的日志详细度。

修改后的核心命令片段示例:

MSBuild.exe "DeviceLock_vs2019.sln" /p:PreferredToolArchitecture=x64 /p:Configuration="Debug" /p:Platform="Win32" /t:build /maxcpucount:6 /verbosity:Normal /consoleloggerparameters:PrefixOutputWithProjectNumber /ds

(其他日志记录器的参数可以保留,不影响这个功能)

这样输出的日志就会和VS构建时一模一样,能清晰看到每个源文件属于哪个项目。

二、构建结束后打印失败项目列表

要在构建完成后明确看到失败项目的列表,有两种实用方式:

  1. 利用已有的/ds参数:你原命令里的/ds其实就是/showSummary的缩写,它会在构建结束时输出一个汇总面板,里面明确列出失败项目的数量和具体名称。只要你的日志详细度不低于Minimal(你的命令已经满足),这个汇总就会正常显示。

  2. 给错误日志器添加摘要:如果需要把失败项目列表单独写入错误日志文件,可以修改filelogger2的参数,加上Summary选项,示例:

/filelogger2 /fileloggerparameters2:ErrorsOnly;Append;LogFile="C:/Users/sergey.kolesnik/dev/repos/DLP/main/src/all_Debug_Win32.err";Encoding=ASCII;Summary

这样在错误日志文件的末尾,会专门添加一段失败项目的汇总列表,方便后续排查。

另外,只要日志详细度足够,MSBuild默认也会在控制台末尾直接输出失败项目的名称和对应的错误数,不用额外参数也能快速看到结果。


内容的提问来源于stack exchange,提问作者Sergey Kolesnik

火山引擎 最新活动