我正在我的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);
}
答案 0 :(得分:0)
您必须在流程完成后阅读结果:
exeProcess.Start();
exeProcess.WaitForExit();
string result = reader.ReadToEnd();
Console.WriteLine(result);