进程写入其自己的日志,但不写入Process.start

时间:2013-09-06 15:04:36

标签: c# asp.net

我正在我的C#控制台程序中运行一个exe程序,如果我通过CMD运行它,它会写入自己的日志,加上一些消息到CMD窗口。当我在程序中读取standardOutput时,我能够看到CMD消息,但是没有创建进程应该写入的日志。换句话说,我的外部进程写入自己的日志,该日志内置于此黑盒实用程序中,所以现在我想从我的控制台程序运行它,因此不会创建日志。有没有人遇到过这个问题,并对如何解决这个问题有一些建议?我不能松开这个日志,因为它是实用程序的日志;与我的计划分开。这是我的代码剪辑:

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = processName;
startInfo.RedirectStandardOutput = true;
startInfo.Arguments = " " + dbName + " " + pw + " " + clientFile;
try
{
  using (Process exeProcess = Process.Start(startInfo))
  {
    using (StreamReader reader = exeProcess.StandardOutput)
    {
       exeProcess.Start();
       exeProcess.WaitForExit();
       string result = reader.ReadToEnd();
       Console.WriteLine(result);
    }
  }
}
catch (Exception e)
{
  Console.WriteLine("Error: " + e);
}

1 个答案:

答案 0 :(得分:0)

您必须在流程完成后阅读结果:

 exeProcess.Start();
 exeProcess.WaitForExit();
 string result = reader.ReadToEnd();
 Console.WriteLine(result);