The default MSBuild logger does nice color-coding of output lines in the console window - if you happen to use the default black background for console windows. I find using bl
Using PowerShell, I suppose PS enthusiasts can provide a better script:
#
# 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}
}
}
The colors are basically hardcoded. What you can do out of the box, with MSBuild 4.0, is completely disable colors using the /clp:disableconsolecolor
option when invoking MSBuild.exe
(for more information on the /clp
option run MSBuild.exe /?
). With older MSBuild versions you can use MSBuild.exe arguments 2>&1| findstr /r ".*"
. See this answer for more details.
If you want to have different colors, you need to implement your own (console) logger, which is not too hard, and use that (/logger:
option, combined with /noconsolelogger
to turn off the default console logger).