2015-02-08 79 views
2

當我跑我的C#的WinForms在Visual Studio IDE的可執行文件之外的第一次,我收到了以下對話:調試.NET崩潰不的Visual Studio IDE內發生

"<Application> has stopped working, Windows can check online..." 

所以我附到使用Visual Studio的附加到進程的過程,該過程顯示程序在InitializeComponent()內暫停(但未提供進一步的線索)。

我編輯的應用程序,周圍放置上述代碼中的try/catch塊,這讓我打印以下MessageBox輸出:

正如你所看到的,這表明,該應用程序是無法找到它需要的DLL。

我的問題:我是否可以在不修改應用程序的情況下實現這個結果(也就是說,沒有try/catch塊打印出具體細節)? Visual Studio附加到進程功能可以指導我解決缺少DLL的特定問題嗎?如果是這樣,怎麼樣?

+0

檢查,如果你有如果你安裝了這個組件,您的Windows應用程序不僅在根文件夾,而且在GAC ......同樣引用的程序集 - 它可能是一個在全局程序集緩存已過時,您需要刪除/更新它。 – Mez 2015-02-08 20:01:11

+0

@Mez我明白,但我的問題不是關於缺少的DLL。這是關於如何使用VS來達到該解決方案。 – Sabuncu 2015-02-08 20:02:22

+0

這似乎是一個重複:http://stackoverflow.com/questions/7572995/how-can-i-get-winforms-to-stop-silently-ignoring-unhandled-exceptions或至少非常相關。 – 2015-02-08 20:10:07

回答

3

如果啓用這些信息,可以從融合日誌中找到。 Fusion日誌有助於診斷由於缺少依賴性而導致程序集加載失敗。

此外,有時事件查看器有有用的信息。

https://msdn.microsoft.com/en-us/library/e74a18c4%28v=vs.110%29.aspx

+0

非常感謝。 (另外,你的Jan 12博客文章非常有用!) – Sabuncu 2015-02-08 20:16:29

+0

@Sabuncu:謝謝先生。 – 2015-02-08 20:25:50