我有程序pro1.exe从输入文件读取,计算结果并将其写入输出文件.
现在我正在编写程序test.exe,在不同的测试中测试它(填充输入,使用Process.Start()运行pro1并将输出与假设进行比较)
现在我正在编写程序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时,工作目录可能不是应用程序的本地路径.