C# 进程启动一直失败。通过代码启动exe失败
我正在尝试通过以下代码启动WPF应用程序可执行文件:C# 进程启动一直失败。通过代码启动exe失败,c#,wpf,process,C#,Wpf,Process,我正在尝试通过以下代码启动WPF应用程序可执行文件: Task.Factory.StartNew(() => { CloseOpen(); }); void CloseOpen() { string srLocationss = @"" + srLocation + @"\Mycoded.exe"; Process.Start(srLocationss); }
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是的,我正在创建一个任务,并从该任务调用此任务