Можно ли предотвратить печать цветных выходных данных MSBuild? - PullRequest
1 голос
/ 29 февраля 2012

Моя оболочка Windows настроена на отображение черного текста на белом фоне.Это делает почти невозможным чтение выходных данных msbuild по умолчанию из-за очень бледных цветов (особенно желтых предупреждений).

Поэтому я хотел бы попробовать одно из следующего, но я не могу решить, еслиэто возможно.

  1. Я бы хотел установить глобальную настройку для постоянного отключения цветного вывода в msbuild;или
  2. Если (1) невозможно, можно включить этот вывод для каждого вызова (например, с аргументами командной строки).

Кто-нибудь знает, как выполнить одно извыше?

Ответы [ 2 ]

1 голос
/ 01 марта 2012

В 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""
0 голосов
/ 02 марта 2012

Чтобы полностью отключить цвета, используйте параметр /clp:disableconsolecolor при вызове MSBuild.exe (для получения дополнительной информации о параметре /clp выполните MSBuild.exe /?).

Обновите как @KMorazпрокомментировал и обновил свой ответ: это работает только с MSBuild 4.0 и выше.

Если вы хотите отключить вывод цвета, вы также можете использовать следующее (что не будет работать с 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, но я добавил его для хорошей меры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...