忽略 msbuild 上的 /noconlog 开关未抑制的输出

Ignoring output not suppressed by /noconlog switch on msbuild

直到最近,如果我调用 msbuild /noconlog /nologo mysolution.sln,在 powershell 中 运行 时我会得到零输出。现在它似乎忽略了 /noconlog(即 /noconsolelogger)并打印此消息:

Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.

有什么方法可以禁用此输出吗?添加 /m 似乎会抑制输出,但实际上 /noconlog 应该会抑制输出,我不应该使用 /m 作为解决方法。

这是一个应该报告的错误吗?如果有,在哪里?


为什么这很重要的一些背景......

我在 powershell 脚本中有一个函数。我检查下面函数的结果 returned 以查看 msbuild 是否成功。之前它工作,但现在 msbuild 输出的消息包含在 return 中,导致我的比较失败。

function buildSolution ($file) {
    $path = $file.FullName
    & $msbuild /nologo /noconlog $path
    return $?
}

这是我检查该函数结果的地方:

$solutionsToBuild = $solutionsToBuild | where { -not (buildSolution($_)) }

也许我可以重定向 msbuild 的输出,这样它就不会以我return从函数中得到的结果结束?

使用 /verbosity:q 作为参数将详细级别设置为 quiet

用法:

msbuild $project /verbosity:q 

/nologo配对,它不应该输出任何东西。 (反正我的情况不是这样。)