AccessViolationException升级到.Net 4.0后

问题描述:

我将.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

您是否尝试手动删除所有程序集,然后使用新框架重建所有程序? Visual Studio经常像Windows一样,它需要重做一切大声笑

+0

我试过了,但没有奏效。除了我们试图使用CI服务器构建解决方案之外,输出也具有相同的问题。 – chenk

+1

这个标签控件与其他标签控件有很大不同吗?是否有一些数据绑定或复杂的数据集操作?也许有一个不合时宜的控制或命令在新框架中出现了更近的问题;尝试评论在此选项卡控件的单击事件上执行的所有代码,以便您可以拥有不会崩溃的内容,然后取消注释,直至崩溃 –

+1

您是对的。早期版本的Icsharpcode.Texteditor导致了所有这些问题。每当文本编辑器作为第一个控制应用程序加载到选项卡项目中时,就会崩溃或抛出异常。但任何其他控件,如在此文本编辑器之前加载的按钮,它工作正常。无论如何,Icsharpcode.Texteditor不支持.net 4目标版本。 ICSharpCode.AvalonEdit是基于WPF的文本编辑器,它以.net 4为目标(无论如何它都替代了ICharpCode.Texteditor)。我尝试了最新版本的Icharpcode.Texteditor,它解决了我的问题。谢谢您的帮助。 – chenk