【发布时间】:2011-09-20 01:51:39
【问题描述】:
我正在研究 DLL 中的方法。在我的方法中,我一直在写入事件日志,以允许我确定事情是否按预期工作。我在该方法中执行的任务之一是创建一个进程并运行一个命令行应用程序,我希望能够捕获通常写入控制台的输出并将其写入事件日志。
代码:
Process getNextIons = new Process();
getNextIons.StartInfo.FileName = @"""C:\Program Files\OpenMS-1.6\PrecursorIonSelector.exe""";
getNextIons.StartInfo.Arguments = @"-ini ""C:\Program Files\OpenMS-1.6\precursorionselector.ini""";
getNextIons.StartInfo.UseShellExecute = false;
getNextIons.StartInfo.RedirectStandardOutput = true;
getNextIons.Start();
getNextIons.WaitForExit();
System.Diagnostics.EventLog.WriteEntry("FMANWiff", "IPS: " + getNextIons.StandardOutput.ReadToEnd());
我有一个调用我的方法的控制台测试应用程序,当我这样做时,我可以看到该进程已启动并正确运行,但是当我实际尝试使用 DLL,而不是使用测试应用程序时,我最终看到的只是一个条目:
IPS:没有任何输出。但是,我可以看出它正在运行,因为我可以看到许多输出文件正在更新。
为什么我没有得到任何输出以及如何纠正这个问题?
【问题讨论】:
-
什么是“IPS”?进程间
?
标签: c# dll process console-application