2013-02-27 49 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