2011-10-18 232 views
2

我將.net 3.5的wpf桌面應用程序升級到.net 4.0。(將目標框架更改爲4.0)。升級後,它顯示一些意外的行爲。AccessViolationException升級到.Net 4.0後

應用程序中有一個選項卡控件。當我單擊某個特定的選項卡時,只會出現以下任一行爲。
1.應用程序崩潰
2. AccessViolationException「試圖讀取或寫入受保護的內存,這通常表示其他內存已損壞。」
3.申請關閉
4.有時工作正常。

除了此選項卡控件問題,應用程序意外關閉。 (關閉標籤或滾動窗口時)。 Sometiems Fatalexecutionengine異常也拋出。

在轉換爲.Net 4.0之前,一切正常。

我沒有任何線索發生了什麼。請幫助解決這個問題。

+0

一個想法是,你的一些p/invoke代碼一直被破壞。但舊框架的實現細節掩蓋了它。 – CodesInChaos

回答

0

您是否嘗試手動刪除所有程序集,然後使用新框架重建所有程序? Visual Studio經常像Windows一樣,它需要重做一切大聲笑

+0

我試過了,但沒有奏效。除了我們試圖使用CI服務器構建解決方案之外,輸出也具有相同的問題。 – chenk

+1

這個標籤控件與其他標籤控件有很大不同嗎?是否有一些數據綁定或複雜的數據集操作?也許有一個不合時宜的控制或命令在新框架中出現了更近的問題;嘗試評論在此選項卡控件的單擊事件上執行的所有代碼,以便您可以擁有不會崩潰的內容,然後取消註釋,直至崩潰 –

+1

您是對的。早期版本的Icsharpcode.Texteditor導致了所有這些問題。每當文本編輯器作爲第一個控制應用程序加載到選項卡項目中時,就會崩潰或拋出異常。但任何其他控件,如在此文本編輯器之前加載的按鈕,它工作正常。無論如何,Icsharpcode.Texteditor不支持.net 4目標版本。 ICSharpCode.AvalonEdit是基於WPF的文本編輯器,它以.net 4爲目標(無論如何它都替代了ICharpCode.Texteditor)。我嘗試了最新版本的Icharpcode.Texteditor,它解決了我的問題。謝謝您的幫助。 – chenk

相關問題