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

C# 如何在Visual Studio的输出窗口中显示控制台输出?,c#,visual-studio,visual-studio-2012,visual-studio-addins,C#,Visual Studio,Visual Studio 2012,Visual Studio Addins,我正在开发一个VisualStudio插件。它将自动生成并运行命令行。如果我在shell中运行该命令,它可能会在运行期间生成一些日志 但是,我想隐藏shell窗口并在VisualStudio输出窗口中显示日志。有没有办法实现这一点 以下是我运行该命令的代码: var process = new System.Diagnostics.Process(); process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hi

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

但是,我想隐藏shell窗口并在VisualStudio输出窗口中显示日志。有没有办法实现这一点

以下是我运行该命令的代码:

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();
据此,

调试前将应用程序类型更改为Windows。如果没有控制台窗口,Console.WriteLine的工作方式与Trace.WriteLine类似。调试后不要忘记将应用程序重置回控制台类型

这可能有助于:

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

string.ToString()
真的吗?@leppie的可能重复是一个简单的错误。修正。谢谢你的回复。因此,如果我使用Debug.Write,输出将仅在调试模式下显示。有没有其他方式来显示它?当用户运行该插件时,它将无法在调试/跟踪模式下工作。我不确定,因为我没有涉足扩展VS,但以下是一些可能有用的资源: