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