当在非常大的解决方案上切换到设计模式时,VS2008崩溃
-
14-10-2019 - |
题
这是在他们刚收到的几台开发人员机器上发生的。我们有一个非常大的解决方案,70多个项目。如果您打开任何形式,即使是新的空白表格,在设计模式下,大多数情况下,VS都会崩溃。使用一些相同项目创建较小的解决方案不会引起问题。并非所有开发人员都在拥有它。我们有VS2008 SP1,Windows XP,并且是VB.NET Winforms。我已经搜索了Google,但是所有VS崩溃似乎都涉及Addins或WPF。它们不是新机器,而是由IT部门对其进行了成像,我想它们都是从同一图像中复制的。
例外:
System.AccessViolationException was unhandled
Message="Attempted to read or write protected memory. This is often an indication that other memory is corrupt."
Source="System.Drawing"
StackTrace:
at System.Drawing.SafeNativeMethods.Gdip.GdipFillRectangleI(HandleRef graphics, HandleRef brush, Int32 x, Int32 y, Int32 width, Int32 height)
at System.Drawing.Graphics.FillRectangle(Brush brush, Int32 x, Int32 y, Int32 width, Int32 height)
at System.Drawing.Graphics.FillRectangle(Brush brush, Rectangle rect)
at ystem.Windows.Forms.Design.Behavior.SelectionBorderGlyph.Paint(PaintEventArgs pe)
at
System.Windows.Forms.Design.Behavior.BehaviorService.PropagatePaint(PaintEventArgs pe)
at System.Windows.Forms.Design.Behavior.BehaviorService.AdornerWindow.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg,
IntPtr wparam, IntPtr lparam)
仅供参考:如果您想知道如何从Visual Studio获得异常。我打开了2份Vs的副本。我将第一个附加到工具附加过程下的第二个。然后在第二次打开解决方案并将其崩溃。
解决方案 2
看起来与视频驱动程序相关,即使机器是不同的视频的不同型号。所有受影响的机器都与设备管理器中禁用的视频驱动程序一起工作。安装最新的视频驱动程序已修复了其中的所有内容。如果您将硬件加速度滑块滑动几乎没有,那么现在未固定的一个即将工作。滑块技巧在之前没有工作,这就是为什么我没有将视频视为问题的原因。我们可能会在该机器上的硬件加速度下生活。
一年前,我们有一些机器不会显示数据集设计师,我们不得不拒绝对这些设计人员的加速,以使它们显示出来。因此,我们的几台机器已经运行了。
其他提示
这看起来像GDI+中的错误。我猜它不能很好地处理资源用完。 Windows为手柄,Windows和GDI资源(例如笔和刷子)提供了一个配额。当它超过其中的10000个时,假设程序中的泄漏是问题,则拒绝再付出。
您可以使用taskmgr.exe,Processes选项卡看到这一点。查看 +选择列,tick句柄,用户对象和GDI对象。一旦其中之一接近配额,各种苦难就开始发生。通常绘画奇怪的话。但是,当代码不检查API调用返回null时,代码可能会崩溃。在不受管理的代码中都太普遍了。
GDI+是 很多 如今,开发人员对Vista进行了改进,这些天不应该再运行XP了。 Win7很好。这也是学习处理UAC和会议0隔离的唯一真正方法。
作为可能的解决方法,请在Superuser.com上询问如何增加默认过程配额。它在注册表中的某个地方。