进程启动 - 无法将输出发送到日志文件

本文关键字:出发 日志 文件 输出 启动 进程 | 更新日期: 2023-09-27 18:33:34

>我有以下代码

var parameters =
    string.Format("TestSuiteDefinitions.dll /include:{0} /out:{1} /err:{2} /xml:{3}", String.Join(",", args), OutputLog, ErrorLog, ResultLog);
var p = Process.Start(GetAssemblyDirectory() + @"'NUnit'nunit-console.exe", parameters);

这允许我从我的应用程序中启动一个单独的进程,使用我所需的输出启动 NUnit 控制台。问题是实际的 NUnit 输出是唯一写入日志的内容。如果该过程由于其他原因而失败,则在命令提示符级别从 nunit-console 看到的命令输出.exe将丢失。

我试过添加

> CommandOutput.txt

| CommandOutput.txt

在 Process.Start 参数字符串的末尾,但它抛出了一个错误,所以不喜欢这样。

谁能建议如何做到这一点?而且我不能使用 Process 的标准输出流,因为调用进程需要在另一个进程启动后立即关闭,因此无法保持打开状态读取和写入流。

进程启动 - 无法将输出发送到日志文件

Process.Start不会启动shell,而只是生成一个进程。因此,重定向和管道不起作用也就不足为奇了。您可以将ProcessStartInfo实例传递到Process.Start,您可以在其中设置RedirectStandardOutput并将其从p.StandardOutput写入文件。