我有程序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文件的完整路径。
在调试中我看到,该进程正在启动,结束时没有错误。
答案 0 :(得分:9)
这通常是由于WorkingDirectory
不同造成的。您可能需要设置WorkingDirectory
属性以匹配可执行文件的路径。
如果没有这个,当UseShellExecute == false
时,工作目录可能不是应用程序的本地路径。