如何为Microsoft.Common.CurrentVersion.targets添加日志排查符号生成问题
排查MSBuild中_DebugSymbolsProduced属性变更的有效日志标签
以下是可直接在Microsoft.Common.CurrentVersion.targets中添加的MSBuild日志标签,用于追踪属性变更:
<Message>标签:这是最常用的日志输出方式,可直接将属性值打印到编译控制台或日志文件,支持指定输出优先级:<Message Text="当前_DebugSymbolsProduced值: $(_DebugSymbolsProduced)" Importance="High" />把这段代码插入到175行之后的关键节点(比如相关目标的开头/结尾),就能实时追踪属性值的变化。
<Warning>标签:如果需要更醒目的提示,用此标签会以黄色警告样式输出,不会中断编译:<Warning Text="检测到_DebugSymbolsProduced变更: 当前值为$(_DebugSymbolsProduced)" /><WriteLinesToFile>标签:适合将属性变更记录到文件,方便后续批量分析,避免控制台输出混乱:<WriteLinesToFile File="$(MSBuildProjectDirectory)\DebugSymbolsTrace.log" Lines="[$([System.DateTime]::Now)] _DebugSymbolsProduced = $(_DebugSymbolsProduced)" Overwrite="false" />其中
Overwrite="false"会以追加模式写入日志,true则会覆盖文件。
额外排查技巧:
- 无需修改targets文件,直接用MSBuild命令行参数
/verbosity:diagnostic(简写/v:d),输出所有编译细节日志,从中可以找到_DebugSymbolsProduced属性被修改的具体位置和触发目标。 - 使用
msbuild /preprocess:full_merged.targets生成合并后的完整targets文件,全局搜索_DebugSymbolsProduced即可找到所有修改该属性的代码段。
内容的提问来源于stack exchange,提问作者Dominique
相关产品推荐
相关产品推荐

