我的团队在Visual Studio 2005上开发了一个GUI应用程序,托管C ++。由于某些交付,即使源代码和项目设置未更改,也无法在设计器中打开表单。设计师报告此错误:
抛出了'System.OutOfMemoryException'类型的异常。
at Microsoft.VisualStudio.Design.VSDynamicTypeService.ShadowCopyAssembly(String fileName) 在Microsoft.VisualStudio.Design.VSDynamicTypeService.CreateDynamicAssembly(String codeBase) 在Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly() 在Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName,String typeName,Boolean ignoreTypeCase,Assembly& assembly,String description) ... 的
我们成功重新编译了该项目,但仍遇到此问题。 有什么想法吗?
答案 0 :(得分:1)
这就是我用来调试这些问题的方法,启动Visual Studio的第二个实例,加载项目并附加到第一个也加载了项目的实例。现在在构造函数和Page Load事件中设置一个断点,也可以在第二个实例中的表单中设置任何自定义绘制事件,并尝试在第一个实例中打开设计器,断点应该被击中,你应该能够看看发生了什么。
答案 1 :(得分:1)
我怀疑你有一个设计模式错误,在相关表格上发生无限循环(或递归控制创建)。
在Windows Forms上帮助我解决这些错误的一点是:
答案 2 :(得分:0)
这是一个很长的镜头,但尝试连续几次关闭并打开设计师。我遇到了与C#Windows窗体设计器(VS2005)相同的问题:表单通常最终正确打开(经过5次尝试后,非常一致)。
答案 3 :(得分:0)
在使用大型多项目解决方案或具有极大且复杂的窗口形式的项目时,我间歇性地遇到了同样的问题。
我能够通过启用Visual Studio使用超过2GB的内存来解决问题。这是过程...
(注意:这假设XP和Visual Studio 2005 - Vista和/或VS2008需要稍作修改)
右键单击我的电脑,属性,高级选项卡。在启动和恢复下,单击设置。单击编辑按钮,然后将 / 3GB 开关添加到[operating systems]行的末尾:
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB
运行Visual Studio命令提示符,然后切换到IDE目录:
cd %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE
使用微软工具editbin修改devenv.exe:
editbin /LARGEADDRESSAWARE devenv.exe
现在重启,你就完成了!