2012-03-01 3 views
3

Регистратор MSBuild по умолчанию делает красивое цветовое кодирование выходных строк в окне консоли - если вы используете черный фон по умолчанию для окон консоли. Я нахожу использование черного текста на сером фоне в окне консоли, чтобы быть проще на моих глазах. (черный на белом слишком яркий.)Можно ли изменить цвета, используемые в регистраторе MSBUILD по умолчанию?

При запуске MSBUILD для наших проектов на выходе выводится теперь труднопрозрачный голубой цвет на серый для некоторых линий. Желтые и красные линии не так плохи.

Есть ли способ настроить цвета, используемые регистратором MSBUILD по умолчанию? Возможно, настройка некоторых файлов XML в установленных файлах VS2010? (Мы используем VS2010.)

Я нашел параметр MSBUILD «consoleloggerparameters», но он, похоже, не предлагает такую ​​функцию.

Доступны ли сторонние пользовательские журналы, которые могут допускать такую ​​настройку, или записывают мой собственный пользовательский журнал? (Мы могли бы, но времени, чтобы сделать это, трудно найти.)

+0

Пользуется PowerShell вариант? [Связано] (http://stackoverflow.com/a/9513340/147211) – KMoraz

+0

Возможно. Как это будет работать для этого? Какой-то способ изменить или сделать смену цвета («сделать весь голубой свет на консоли синим»?) – RobDavenport

+0

Я опубликовал свой снимок. Я полагаю, что сценаристы PowerShell могут сделать лучше. – KMoraz

ответ

2

Цвета в основном жестко закодированы. Что вы можете сделать из коробки, с MSBuild 4.0, полностью отключает цвета, используя опцию /clp:disableconsolecolor при вызове MSBuild.exe (для получения дополнительной информации о запуске опций /clpMSBuild.exe /?). С более старыми версиями MSBuild вы можете использовать MSBuild.exe arguments 2>&1| findstr /r ".*". См. this ответ для получения более подробной информации.

Если вы хотите иметь различные цвета, вам нужно реализовать свой own (console) logger, которая не слишком трудно, и использовать это (/logger: вариант, в сочетании с /noconsolelogger, чтобы выключить консоль регистратора по умолчанию).

+0

Спасибо. Я боялся этого. (Но не всем нравится черные окна консоли ... :) Возможно, в будущей версии. Мне нравится цветной вывод, поэтому я бы предпочел не отключать его, просто измени его. Я попробую сценарий powershell KMoraz и посмотрю, как это работает для меня. – RobDavenport

+0

Пример написания собственного журнала выглядит понятным, мне тоже придется посмотреть на это. Спасибо за ссылку. – RobDavenport

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} 
    } 
} 
+0

Спасибо, КМОРАЗ, я попробую. – RobDavenport

Смежные вопросы