如何在Visual Studio Addin的输出窗口中显示控制台输出?

时间:2015-06-24 16:15:37

标签: c# visual-studio visual-studio-2012 visual-studio-addins

我正在开发一个Visual Studio插件。它将自动生成并运行命令行。如果我在shell中运行该命令,它可能会在运行期间生成一些日志。

但是,我想隐藏shell窗口并在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();

2 个答案:

答案 0 :(得分:0)

根据此similar question

  

在调试之前将应用程序类型更改为Windows。如果没有Console窗口,Console.WriteLine就像Trace.WriteLine一样工作。不要忘记在调试后将应用程序重置为控制台类型。

答案 1 :(得分:0)

这可能会有所帮助:

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());