2011-02-15 65 views
0

每當我嘗試在除自己的開發系統之外的另一臺機器上運行它時,我的程序都會崩潰。它運行得很好,但在我安裝和運行時崩潰了。如何在執行期間診斷我的VB.NET程序崩潰?

更糟糕的是,它只給了我通用的「[此處的名稱]遇到問題,需要關閉,我們很抱歉給您帶來不便」。所以我永遠無法找出原因,並在哪裏崩潰!

http://img513.imageshack.us/img513/6010/ownerror.jpg

錯誤簽名是:

EventType : clr20r3  P1 : [name here].exe  P2 : 1.0.0.0  P3 : 4d5a8bcb  
    P4 : own  P5 : 1.0.0.0  P6 : 4d5a8bcb  P7 : d  P8 : c6  
    P9 : system.invalidoperationexception 

我甚至把對錯誤轉到DOH在Form_Load,我還是什麼也沒得到。它只是裝載在form_load上的東西是me.show()而那就是它!

如果任何人有任何洞察力,我可以做什麼來弄清楚它的崩潰,那將是非常棒的! :O)

感謝,

大衛

回答

1

這裏有幾件事情,試圖/考慮:

1)你檢查Windows應用程序日誌,看看你能得到更多的明確的錯誤信息?

2)嘗試註釋儘可能多的初始化代碼以縮小問題範圍。對我而言,這聽起來非常像環境依賴性,但你首先要消除你的代碼。

3)你的機器和其他機器有什麼不同?您的DEV機器上是否有運行時所需的庫(如VB運行時)?

+0

當我檢查日誌時,我可以看到它說** .NET運行時2.0錯誤報告**但我知道我已經安裝了框架2.0SP2/3.0SP2/3.5SP1&4! – StealthRT 2011-02-15 14:49:32

+0

我已經評論了一切,但在form_load代碼中的me.show(),但它仍然有這個錯誤。 :o( – StealthRT 2011-02-15 14:50:12

+0

該程序僅使用** framework 2.0 **控件和** Imports Oracle.DataAccess.Client **。 – StealthRT 2011-02-15 14:50:58

1

另一件事。

請勿使用ON ERROR GOTO ...這是一種跟蹤錯誤的舊方法。我甚至不知道它現在是否有效。 yse嘗試...趕上。

+0

我用try/catch替換它,但仍然沒有錯誤信息,而不是通用的。 – StealthRT 2011-02-15 14:54:22

1

我的經驗是,這通常是一個缺少/破損的app.config文件的問題。它永遠不會實際運行您可以觀看/跟蹤的任何代碼,因爲它永遠不會完成加載基本配置。

1

我在過去所做的解決類似問題的方法是在乾淨的Windows安裝上安裝Visual Studio,然後安裝我的程序。這使我能夠看到我的程序中發生錯誤的位置。在我的情況下,這是一個缺少的DLL文件。

0

它可能是導致錯誤的InitializeComponent中的一些代碼。在你的Form.vb中,爲New()事件添加一個處理程序,並在那裏顯示帶有初始化組件調用的New()方法。將該代碼放在try catch塊中,看看是否有任何不同的錯誤。