2014-02-05 6 views
3

Я использую Powershell ISE для запуска скрипта сборки, который, в свою очередь, использует MSBuild, однако - он не позволяет синим текстовым цветам MSBuild. MSBuild выводит цветные сообщения - желтый, серый, зеленый или красный в зависимости от его содержимого.Powershell ISE Lakes color output

Если я запускаю скрипт через обычный файл powershell.exe (под которым находится CMD), я получаю цветовое кодирование.

Внутри Powershell ISE, я протестировал его, используя Write-Host -ForegroundColor Green 'hello', который работал, поэтому есть причина, почему цвет от MSBuild не будет работать?

+2

powershell.exe не является "CMD под" AFAIK. – alroc

+0

Итак, ваша проблема в том, что powershell не передает информацию о цвете в MSBuild? – Neolisk

+1

@Neolisk На самом деле, похоже, что его проблема - полная противоположность. PowerShellISE не принимает информацию о цвете, которая передается из MSBuild, и просто форматирует все как обычный текст. – TheMadTechnician

ответ

5

PowerShell.exe - это консольное приложение Win32, а также MSBUILD.exe, поэтому он может выводиться с использованием цветов консоли. PowerShell_ISE не является консольным приложением. Это приложение подсистемы Windows - в частности, это приложение WPF. То, что вы видите с его окном Command tool, представляет собой эмуляцию консольного режима, но не 100% -ную эмуляцию доказательства. Если у вас есть доступ к старым edit.com, он должен работать в PowerShell.exe. Я уверен, что он не будет работать в командном окне PowerShell_ISE.

+0

Вы правы. Powershell ISE - это просто эмулятор консольного режима. http://blogs.msdn.com/b/powershell/archive/2009/04/17/differences-between-the-ise-and-powershell-console.aspx - говорит, что для консольных приложений цветной выход отсутствует. –

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