我的程序在RELEASE模式下运行正常,但是当我在DEBUG模式下运行时,它在这些代码行上失败了:
string l_strFileDir = @"C:\Program Files\Sil\Q 5.2\";
Process scriptProc = new Process();
scriptProc.StartInfo.FileName = @"USB_VID_PID.exe";
scriptProc.StartInfo.WorkingDirectory = l_strFileDir;
scriptProc.StartInfo.UseShellExecute = false;
scriptProc.StartInfo.CreateNoWindow = true;
scriptProc.Start();
string l_strFilePath = l_strFileDir + @"\out.txt";
错误是:
异常:系统找不到指定的文件
它给了我堆栈跟踪。
修改 .exe文件不一定需要在调试文件夹中,因为我写了一个完整的路径。
当程序在异常中断时,它写道在另一个路径中找不到该文件 - 而不是我在代码中写的路径。
在使用“开始”命令的行中发生异常。
我的路径中没有双反斜杠
答案 0 :(得分:1)
问题是USB_VID_PID.exe
不在您的调试文件夹中。将整个路径添加到.StartInfo.FileName
或将EXE添加到调试文件夹。
scriptProc.StartInfo.FileName = Path.Combine(l_strFileDir, @"USB_VID_PID.exe");
当UseShellExecute为false时,不是WorkingDirectory属性 用于查找可执行文件。相反,它的值适用于该过程 这是开始的,只有在新的背景下才有意义 过程
答案 1 :(得分:0)
DEBUG和RELEASE编译导致不同目录中的代码输出。您可能尝试在文件上创建一个Process
对象,该对象根本不存在。确保您的文件位于正确的目标目录中或改进文件的路径信息。