忽略 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
配对,它不应该输出任何东西。 (反正我的情况不是这样。)
直到最近,如果我调用 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
配对,它不应该输出任何东西。 (反正我的情况不是这样。)