我的Windows shell配置为在白色背景上显示黑色文本。这使得几乎不可能读取默认的msbuild输出,因为颜色非常浅(特别是黄色警告)。
因此,我想尝试下列其中一项,但如果可能,我无法解决。
有谁知道如何做以上其中一项?
答案 0 :(得分:1)
在 MSBuild 4.0 中,可以使用/consoleloggerparameters
或/clp
开关:
msbuild C:\some_path\your.sln /clp:disableconsolecolor
或者,对于以前的MSBuild引擎,可以使用 PowerShell :
Out-Host
将显示默认颜色:
Powershell -Command "msbuild C:\some_path\your.sln | out-host"
Write-Host
可让您自定义颜色:
Powershell -Command "msbuild C:\some_path\your.sln | write-host -foreground "white""
答案 1 :(得分:0)
要完全禁用颜色,请在调用/clp:disableconsolecolor
时使用MSBuild.exe
选项(有关/clp
选项运行MSBuild.exe /?
的更多信息)。
如果要禁用颜色输出,还可以使用以下颜色(不使用MSBuild 4.0):
MSBuild.exe arguments > CON 2>&1
这让我很好奇;-)所以这里还有一个选项可以适用于所有版本的MSBuild.exe,并且不依赖于CON
重定向:
MSBuild.exe arguments 2>&1| findstr /r ".*"
基本上,所发生的是所有输出行都通过findstr.exe
传输,因为它使用模式匹配“所有”,所有行都只是再次输出,但丢失了它们的属性(颜色)信息。在我的测试中,2>&1
(重定向stderr到stdout)并不是必需的,因为它看起来MSBuild没有向stderr输出任何(彩色)消息,但我添加了它以便进行测量。