繁体   English   中英

调试时无法使用 Process.Start() 执行进程

[英]Can't execute a process using Process.Start() while debugging

我在 VS2015 中使用 C# 和 winforms 来处理应用程序。 当用户启动应用程序时,我试图从可执行文件 1 调用可执行文件 2。 可执行文件 1 然后等待可执行文件 2 退出,然后自己退出。 现在,当一切都从编译代码构建并运行时,它启动可执行文件 2 就好了。 但是当我调试可执行文件 1 时,它不起作用。 可执行文件 1 只是加载,然后关闭而没有明显启动可执行文件 2。

创建进程并启动它的代码如下:

Process mainForm = new Process();
mainForm.StartInfo.FileName = locPath;
mainForm.StartInfo.WorkingDirectory = Path.GetDirectoryName(locPath);
mainForm.EnableRaisingEvents = true;
mainForm.StartInfo.UseShellExecute = false;
if (passedArguments != "") mainForm.StartInfo.Arguments = passedArguments;

mainForm.Start();

mainForm.WaitForExit();
Application.Exit();

变量locPath包含可执行文件 2 的路径。请注意,我不需要调试可执行文件 2,我只需要查看它是否对存储在变量passedArguments的文件名做出反应。

我已经检查了我们的安全软件 (CylancePROTECT),它没有阻止任何东西。

我不确定这是错误还是我做错了什么,但正如我所说,当构建可执行文件 1 并运行该编译代码时,它工作得很好。

感谢 Ben Voigt 的有用见解,我设法找出了问题所在。

设置mainForm.StartInfo.UseShellExecute = false; 正在将错误发送回第一个可执行文件。 出于某种原因,这在编译代码时不是致命错误,但在调试时却是致命错误。

因此,稍后进行一些错误处理(并修复导致第二个可执行文件中出现错误的代码),一切正常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM