2014-11-21 100 views
0

我目前正在爲windows開發一個備用shell(用explorer替換)。調試編譯的程序? c#wpf

問題是程序在正常運行時運行正常。

,但是當我將它設置爲Windows和默認的shell重新登錄到我的用戶帳戶的方案几秒鐘運行,然後將其強行關閉。

有什麼我可以做什麼可能會出錯?

順便說一句,在c#wpf上工作。

+1

你有沒有嘗試過在它崩潰之前附加一個調試器?如果沒有足夠的時間,你總是可以臨時添加一個「睡眠」... – Cameron 2014-11-21 17:08:02

+0

如果你從任務管理器中殺死資源管理器並運行你的shell,會發生什麼? – spender 2014-11-21 17:11:10

+1

Windows應用程序日誌告訴你什麼?通常有一些堆棧跟蹤隱藏在那裏。 – spender 2014-11-21 17:12:32

回答

1

您是總是調試編譯的程序。

但是,當您從Visual Studio中運行它,調試器自動附加(所以你可以看到異常,設置斷點等)。

可以通過使用「調試」菜單中的「附加到進程」選項對已經運行的進程執行相同的操作。

其他的事情嘗試:

  • 添加try/catch塊左右,可以炸燬
  • 添加伐木區,特別是把一個 「睡眠」 在啓動時如果try/catch塊
  • 該程序在您可以附加調試器之前關閉。

另外,從@ScottChamberlin,您可以直接要求通過System.Diagnostics.Debugger.Launch()從正在運行的可執行文件附加調試器。

+1

的另一件事,做一個'System.Diagnostics.Debugger.Launch()',它會問你其中的Visual Studio版本你想要打開並開始調試,就像您附加處理一樣。 – 2014-11-21 18:03:58

+0

@ScottChamberlain我不知道你能做到這一點。謝謝你的提示!我編輯它。 – BradleyDotNET 2014-11-21 18:06:41

+0

@BradleyDotNET你可能從來沒有開發任何Windows服務,因爲這通常是第一行的代碼,只要你的服務無法啓動... – 2014-11-21 18:49:14