我正在开发一个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();
答案 0 :(得分:0)
在调试之前将应用程序类型更改为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());