Как отобразить вывод консоли в окне вывода в Visual Studio Addin?

Я разрабатываю плагин для Visual Studio. Он автоматически сгенерирует и запустит командную строку. Если я запустил команду в оболочке, она могла бы сгенерировать журналы во время работы.

Однако я хочу скрыть окно оболочки и отображать журналы в окне вывода Visual Studio. Есть ли способ реализовать это?

Вот мой код для запуска команды:

var process = new System.Diagnostics.Process();
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.Arguments = "/c"+command; 
process.Start();

person JDD    schedule 24.06.2015    source источник
comment
возможный дубликат консоли перенаправления.Write ... Методы окна вывода Visual Studio при отладке   -  person bowlturner    schedule 24.06.2015


Ответы (2)


в соответствии с этим аналогичным вопросом

Перед отладкой измените тип приложения на Windows. Без окна консоли Console.WriteLine работает как Trace.WriteLine. Не забудьте вернуть приложение к типу консоли после отладки.

person bowlturner    schedule 24.06.2015

Это может помочь:

process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.startInfo.RedirectStandardOutput = true;
process.startInfo.RedirectStandardError = true;

StreamReader stringBackFromProcess = process.StandardOutput;

Debug.Write(stringBackFromProcess.ReadToEnd());

// or

Console.Write(stringBackFromProcess.ReadToEnd());
person AzNjoE    schedule 24.06.2015
comment
string.ToString() правда? - person leppie; 24.06.2015
comment
@leppie, это была простая ошибка. Фиксированный. - person AzNjoE; 24.06.2015
comment
Благодарю за ответ. Поэтому, если я использую Debug.Write, вывод будет отображаться только в режиме отладки. Есть ли другой способ отобразить это? Плагин не будет работать в режиме отладки / трассировки, когда его запускают пользователи. - person JDD; 24.06.2015
comment
Я не уверен, поскольку я не пробовал расширять VS, но вот некоторые ресурсы, которые могут быть полезны: stackoverflow.com/questions/7773880/ msdn.microsoft.com/en-us/library/ht6z4e28.aspx msdn.microsoft.com/en-us/library/3hk6fby3.aspx msdn.microsoft.com/en-us/ библиотека / msdn.microsoft.com/en-us/library/ bb166236.aspx - person AzNjoE; 24.06.2015