0

我的团队在 Visual Studio 2005 上开发了一个 GUI 应用程序,托管 C++。由于某些交付无法在设计器中打开表单,即使源代码和项目设置没有更改。设计器报这个错误:

引发了“System.OutOfMemoryException”类型的异常。

在 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) ...

我们成功地重新编译了项目,但我们仍然遇到这个问题。任何想法?

4

4 回答 4

1

这就是我过去调试这些问题的方式,启动 Visual Studio 的第二个实例,加载您的项目并附加到也加载了项目的第一个实例。现在在构造函数和页面加载事件中设置一个断点,以及您在第二个实例中可能在表单中拥有的任何自定义绘制事件,并尝试在第一个实例中打开设计器,断点应该被命中并且您应该能够看看发生了什么。

于 2008-10-02T10:21:31.137 回答
1

我怀疑您有一个设计模式错误,其中在相关表单上发生了无限循环(或递归控件创建)。

在 Windows 窗体上帮助我解决此类错误的一件事是:

  • 为您的 GUI 应用程序打开 Visual Studio 2005 解决方案。暂时不要打开您的表单
  • 打开另一个 Visual Studio 2005 实例
  • 在第二个实例中,将 devenv.exe 的第一个实例附加(调试 -> 附加到进程)到调试器。确保异常(调试 -> 异常)选中“抛出”下的所有异常复选框。
  • 现在转到您的第一个 VS2005 实例并打开表单。第二个 VS2005 实例将停在发生错误的行。
于 2008-10-02T10:23:36.437 回答
0

I've run into the same issue intermittently when working with a large multi-project solution, or a project with an exceedingly large and complicated windows form.

I was able to solve the problem by enabling Visual Studio to use more than 2GB of memory. Here's the process...

(note: this assumes XP and Visual Studio 2005 - Vista and/or VS2008 will require slight changes)

Edit Boot.ini

Right-click My Computer, properties, Advanced tab. Under Startup and Recovery click Settings. Click the Edit button, and add the /3GB switch to the end of the [operating systems] line:

multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /3GB

Make Visual Studio "Large Address Aware"

Run a Visual Studio Command Prompt, and change to the IDE directory:

cd %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE

Use the microsoft tool editbin to modify devenv.exe:

editbin /LARGEADDRESSAWARE devenv.exe

Now reboot, and you're done!

于 2008-10-25T04:50:00.407 回答
0

这是一个很长的镜头,但请尝试连续多次关闭和打开设计器。我在使用 C# Windows 窗体设计器 (VS2005) 时遇到过同样的问题:窗体通常最终会正确打开(经过 5 次尝试,非常一致)。

于 2008-10-02T10:19:56.867 回答