直到最近,如果我打电话给msbuild /noconlog /nologo mysolution.sln
,我在PowerShell中运行时输出为零。现在它似乎忽略/noconlog
(即/noconsolelogger
)并打印此消息:
一次一个地在此解决方案中构建项目。要启用并行构建,请添加" / m"开关。
有没有办法可以禁用此输出?添加/m
似乎会抑制输出,但看起来/noconlog
似乎应该抑制它,我不应该使用/m
作为解决方法。
这是一个应该报告的错误吗?如果是这样,在哪里?
关于为什么这很重要的一些背景......
我在powershell脚本中有一个函数。我检查从下面的函数返回的结果,看看msbuild是否成功。它之前有效,但现在由msbuild
输出的消息包含在返回中,导致我的比较失败。
function buildSolution ($file) {
$path = $file.FullName
& $msbuild /nologo /noconlog $path
return $?
}
我在这里查看该功能的结果:
$solutionsToBuild = $solutionsToBuild | where { -not (buildSolution($_)) }
也许我可以重定向msbuild的输出,以便它不会从我从函数返回的内容中结束?
答案 0 :(得分:1)
使用/verbosity:q
作为参数,将详细级别设置为quiet
。
用法:
msbuild $project /verbosity:q
与/nologo
配对,不应输出任何内容。 (反正我的情况并非如此。)