未知构建错误,抛出了“System.OutOfMemoryException”类型的异常。

14

我们的VS.Net解决方案中有20个项目。

偶尔,在VS.NET中,当我们尝试构建/调试我们的解决方案时,会出现以下错误:

未知的构建错误,“System.OutOfMemoryException”类型的异常被抛出

唯一的“解决”方法是重新打开Visual Studio,然后解决方案可以正常构建,但是过一段时间后,OutOfMemory异常再次发生。重新打开几次Visual Studio真的很烦人,那么您知道这个问题的解决方法吗?


1
+1 我有同样的问题,但从未能够找到它的原因。这不仅发生在编译时;在 Visual Studio 打开一段时间后打开表单设计器也会出现这个问题。关闭并重新打开 Visual Studio 可以百分之百地解决这个问题,至少任务管理器认为还有足够的内存可用。 - lc.
你是否在使用ReSharper或其他插件?试着在工具->插件管理器中禁用它们,只是为了看看它们是否是问题的一部分。另外,如果你只是重复构建而没有进行调试或单元测试运行,这个问题是否会发生? - John Saunders
我正在使用ReSharper,等待下一个OutOfMemoryException,然后尝试关闭它,看看会发生什么。 - m1k4
关闭 ReSharper 没有帮助。就像你说的那样,我一遍又一遍地进行构建,两三次构建,然后调试。可能是某个 VS.NET 的问题 :/ - m1k4
5个回答

3

2

或者你可以将 Visual Studio 最小化约 10 秒钟(在任务管理器中观察 devenv.exe 的内存使用情况在最小化时会降低)。这在大多数情况下对我有效。我很少需要关闭 VS 来消除此错误。


2
根据微软的建议,在一个解决方案中拥有大量项目并不是一个好主意。请查看此链接http://support.microsoft.com/kb/949755。但是,文章中建议的解决方案不是可以立即使用的,因为涉及到代码重构成本。您尝试从IDE外部构建解决方案了吗?(类似于MSBUILD)。这可能会有所帮助。

我们没有将代码分成几个解决方案,原因就是重构。在IDE之外构建工作得很好,唯一的问题是VS.NET构建。 - m1k4

2

如果我使用ReSharper并运行多个启用了CodeCoverage的单元测试,我会遇到相同的问题。

我也认为这是ReSharper的问题。当我运行Unittest时禁用它,异常就不再出现了。

顺便说一下 - 在异常抛出时禁用它(如上面的注释中所提到的)没有帮助,因为在VS正在运行时禁用它将无法卸载它。 强制卸载的唯一方法是关闭所有已加载该DLL的AppDomains。 在VS包方案中,这意味着您必须关闭整个VS进程:(


猜想你是对的。我关闭了ReSharper,重新启动了VS,并等待几个小时看它是否会再次发生。如果没有,你就得到+1 :),然后我会考虑如何处理ReSharper :/ - m1k4

-1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接