为什么我的程序在发布模式下运行正常,但在调试模式下失败?

时间:2016-09-20 15:19:40

标签: c# debugging visual-studio-2015 .net-4.5 release

我的程序在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文件不一定需要在调试文件夹中,因为我写了一个完整的路径。

当程序在异常中断时,它写道在另一个路径中找不到该文件 - 而不是我在代码中写的路径。

在使用“开始”命令的行中发生异常。

我的路径中没有双反斜杠

this is the exception

2 个答案:

答案 0 :(得分:1)

问题是USB_VID_PID.exe不在您的调试文件夹中。将整个路径添加到.StartInfo.FileName或将EXE添加到调试文件夹。

scriptProc.StartInfo.FileName = Path.Combine(l_strFileDir, @"USB_VID_PID.exe");

From MSDN

  

当UseShellExecute为false时,不是WorkingDirectory属性   用于查找可执行文件。相反,它的值适用于该过程   这是开始的,只有在新的背景下才有意义   过程

答案 1 :(得分:0)

DEBUG和RELEASE编译导致不同目录中的代码输出。您可能尝试在文件上创建一个Process对象,该对象根本不存在。确保您的文件位于正确的目标目录中或改进文件的路径信息。