2013-02-27 43 views
-1

我想通过下面的代码来启动一个WPF应用程序可执行文件:进程开始保持失败。通过代码启动EXE失败

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

void CloseOpen() 
{ 
     string srLocationss = @"" + srLocation + @"\Mycoded.exe"; 
     Process.Start(srLocationss); 
} 

可执行启动并立即失败。如果我双击它,它会起作用。我很困惑。

这里的错误

enter image description here

+2

Process.Start返回一个进程。检查退出代码并从那里开始。 – 2013-02-27 16:35:56

+1

在合并路径和文件名时尝试使用'Path.Combine'并在运行前验证文件是否存在以确保您已正确定义路径。 – 2013-02-27 16:42:40

+0

你的活动日志说什么?事件日志中记录了未处理的异常。 – 2013-02-27 16:44:02

回答

1

截图清楚地表明,你其实并成功启动该程序。但它立即崩溃并显示Windows错误报告对话框。您还没有ExitCode,因为该过程尚未退出。直到关闭对话框才会发生这种情况。

显然,“调试程序”选项是一个有吸引力的选项。

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

如果这个程序是你自己的,那么通过编写AppDomain.CurrentDomain.UnhandledException的事件处理程序来改进它。显示或记录e.ExceptionObject.ToString()的值。现在你知道为什么它坠毁。

+0

感谢问题是工作目录:) – MonsterMMORPG 2013-02-28 11:41:21