我有程序 pro1.exe
从输入文件中读取,计算结果并将其写入输出文件。
现在我正在编写程序 test.exe
,在不同的测试中对其进行测试(填充输入,使用 Process.Start()
运行 pro1,并将输出与假设的进行比较)
问题如下:执行pro1.exe
后输出文件为空。但是,如果我手动运行它,它会写入输出文件。
这是我如何执行 pro1 的代码:
ProcessStartInfo processInfo = new ProcessStartInfo();
processInfo.FileName = _applicationName;
processInfo.ErrorDialog = true;
processInfo.UseShellExecute = false;
processInfo.RedirectStandardOutput = true;
processInfo.RedirectStandardError = true;
Process proc = Process.Start(processInfo);
_applicationName
是 exe 文件的完整路径。
在调试中我看到,该过程正在开始和结束时没有错误。
最佳答案
这通常是由不同的 WorkingDirectory
引起的.您可能需要设置 WorkingDirectory
属性以匹配可执行文件的路径。
如果没有这个,当 UseShellExecute == false
时,工作目录可能不是应用程序的本地路径。
关于c# - Process.Start() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18006016/