Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 进程启动一直失败。通过代码启动exe失败_C#_Wpf_Process - Fatal编程技术网

C# 进程启动一直失败。通过代码启动exe失败

C# 进程启动一直失败。通过代码启动exe失败,c#,wpf,process,C#,Wpf,Process,我正在尝试通过以下代码启动WPF应用程序可执行文件: Task.Factory.StartNew(() => { CloseOpen(); }); void CloseOpen() { string srLocationss = @"" + srLocation + @"\Mycoded.exe"; Process.Start(srLocationss); }

我正在尝试通过以下代码启动WPF应用程序可执行文件:

            Task.Factory.StartNew(() =>
            {
                CloseOpen();
            });

void CloseOpen()
{
      string srLocationss = @"" + srLocation + @"\Mycoded.exe";
      Process.Start(srLocationss);
}
可执行文件启动并立即失败。如果我双击它,它会工作。我真的很困惑

这是错误


屏幕截图清楚地显示您确实成功启动了该程序。但它立即崩溃并显示Windows错误报告对话框。您还没有ExitCode,因为进程尚未退出。在关闭对话框之前,这不会发生

显然,“调试程序”选项很有吸引力

进程在启动时崩溃的原因很多。到目前为止,最常见的方法是不设置ProcessStartInfo.WorkingDirectory属性。编写糟糕的程序通常假定默认工作目录设置为EXE的路径。并尝试加载具有相对路径名而不是完整路径名的文件(如“mumble.txt”而不是“c:\foo\bar\mumble.txt”)。如果没有设置工作目录,那就是一个kaboom。它不会与您当前的代码一起使用


如果此程序是您自己的,则通过为AppDomain.CurrentDomain.UnhandledException编写事件处理程序来改进它。显示或记录e.ExceptionObject.ToString()的值。现在您知道它崩溃的原因了。

Process.Start返回一个进程。检查退出代码并从那里开始。尝试使用
Path。在组合路径和文件名时组合
,并在运行之前验证文件是否存在,以确保正确定义了路径。您的事件日志显示了什么?未处理的异常记录在eventlog中。请发布应用程序启动代码,是否正在创建新的dispathers?@Saurabh是的,我正在创建一个任务,并从该任务调用此任务