默认的MSBuild记录器在控制台窗口中对输出行进行了很好的颜色编码 - 如果您碰巧使用控制台窗口的默认黑色背景。我发现在控制台窗口的灰色背景上使用黑色文字更容易在我的眼睛。 (白底黑太亮了。)
在我们的项目中运行MSBUILD时,输出会出现一些现在难以读取的青色灰色部分线条。黄色和红色的线条并没有那么糟糕。
有没有办法自定义默认MSBUILD记录器使用的颜色? 也许调整VS2010安装文件中的一些XML文件? (我们正在使用VS2010。)
我发现了MSBUILD参数“consoleloggerparameters”,但它似乎没有提供这样的功能。
是否有可能允许此类自定义的第三方自定义记录器,或者是我自己编写自定义记录器的唯一选项? (我们可以,但是时间难以实现。)
答案 0 :(得分:2)
颜色基本上是硬编码的。使用MSBuild 4.0,您可以开箱即用的功能是在调用/clp:disableconsolecolor
时使用MSBuild.exe
选项完全禁用颜色(有关/clp
选项运行MSBuild.exe /?
的更多信息)。使用较旧的MSBuild版本,您可以使用MSBuild.exe arguments 2>&1| findstr /r ".*"
。有关详细信息,请参阅this答案。
如果您想要使用不同的颜色,则需要实施own (console) logger,这不是太难,并使用(/logger:
选项与/noconsolelogger
结合使用来关闭默认控制台记录器。)
答案 1 :(得分:0)
使用 PowerShell ,我想PS爱好者可以提供更好的脚本:
#
# Run MSBuild With Custom Color.ps1
#
msbuild C:\some_path\your.sln | foreach-object -process {
switch ($_){
{ $_.tolower().contains("warning")} {Write-Host $_ -foregroundColor DarkBlue}
{ $_.tolower().contains("error")} {Write-Host $_ -foregroundColor DarkRed}
default {Write-Host $_ -foregroundColor Black}
}
}