隐藏 msbuild 任务的控制台输出

hide console output from msbuild task

我是运行这个来自命令行的msbuild脚本(省略其他细节)

<MSBuild Projects ="@(ProjectsToBuild)"
             ContinueOnError ="false"
             Properties="Configuration=$(Configuration)">

如果我在编译时没有任何错误,如何隐藏它的输出?

没有任何参数可以添加到 msbuild 中的特定目标以使其在没有任何命令输出的情况下进行构建。但是您可以将调用包装在第二个目标中,然后通过执行 msbuild 并使用 /noconsolelogger 标志调用目标:

<Exec Command="MSBuild $(MSBuildProjectDirectory)$(MsBuildThisFile) /t:TargetToExecute /nologo /noconsolelogger"/> 

msbuild 输出(大部分)来自 Logger 对象。这些对象是可扩展的;您可以提供自己的实现,也可以使用任何内置记录器。

如果您看到来自 msbuild 的控制台输出,那么您看到的是来自内置控制台记录器的输出。您可以使用 /noconsolelogger 命令行选项关闭控制台记录器。

即使设置了该选项,您仍然会看到几行输出:包括程序名称和版权信息的启动消息。您可以使用 /nologo 选项抑制该输出。