如何调整自定义MSBuild目标的详细级别以默认显示命令输出?
解决方法
有两种方式可以让你的Exec命令输出默认可见:
1. 修改Exec任务的输出重要性
直接在.csproj的Exec节点里添加StandardOutputImportance和StandardErrorImportance属性,将它们设为High。这样MSBuild默认的日志级别(Information)就能捕捉到这些输出,无需额外加参数。
修改后的目标代码:
<Target Name="AfterRestore" AfterTargets="Restore"> <Exec Command="./script/after-restore.sh" StandardOutputImportance="High" StandardErrorImportance="High" /> </Target>
原理:MSBuild的输出分为不同重要性级别,Normal级别的输出需要-v:n(详细日志)才会显示,而High级别在默认的Information日志级别下就会展示。
2. 通过Directory.Build.rsp设置默认日志级别
在项目根目录创建或修改Directory.Build.rsp文件,添加以下内容:
-v:n
这样每次执行dotnet restore时会自动带上详细日志参数,所有MSBuild的详细输出都会显示。但这种方法会全局提升日志级别,不仅限于你的自定义脚本输出,适合需要查看更多构建细节的场景。
如果你的脚本可能返回非0退出码但不想中断构建,可以给Exec节点额外添加IgnoreExitCode="true"属性。
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

