EF添加迁移时出现System.OutOfMemoryException异常

12
当我试图通过PM添加迁移文件时,出现了内存不足异常。有人之前遇到过这个问题并知道如何解决吗?到目前为止,我已经尝试重新安装VS 2013,但没有效果。
监视我的内存使用情况,我有12GB可用,并且在添加迁移时仅使用了不到8GB,因此应该有足够的空间。下面是输出结果:
PM> add-migration test
System.OutOfMemoryException:引发了类型为'System.OutOfMemoryException'的异常。 在System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)中, 在System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)中, 在System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName,String language,String rootNamespace,Boolean ignoreChanges)中, 在System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name,Boolean force,Boolean ignoreChanges)中, 在System.Data.Entity.Migrations.AddMigrationCommand<>c__DisplayClass2。<.ctor> b__0()中, 在System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)中, 引发了类型为“System.OutOfMemoryException”的异常。

也许看一下这个。我以前遇到过这个问题,但从未在Nuget控制台中执行命令时遇到过。希望它有所帮助:https://dev59.com/amYq5IYBdhLWcg3wzDpI - Drew Kennedy
@magicandre1981 感谢您的建议,但我只安装了12个扩展,其中包括我无法删除的 Microsoft 广告 SDK 和其他扩展。我只安装了一些自己需要的扩展,不确定是否可以再减少使用。 - rhunter
@DrewKennedy 感谢您提供的链接。我可以确认,我正在针对 Any CPU 进行目标设置,并且最近没有更改过任何设置。我可以确认,直到几天前这个程序还是可以运行的。 - rhunter
@magicandre1981 VMMap 显示任务运行时可用内存在减少,在抛出异常的时候,大约还有 400MB 的可用内存。 - rhunter
我也尝试在安全模式下运行VS,因此添加功能不应该被启用,但结果仍然相同,在抛出异常时可用内存约为600MB,手动刷新,因此可能有点偏差。 - rhunter
显示剩余2条评论
5个回答

25

在这种情况下,我只需简单地重新启动 Visual Studio 就可以解决问题。


3
重启后它对我起作用了。这就是为什么我们认为“重启”是如此神奇的解决方案!!! - Pritom Nandy
1
是的,那个方式对我也适用,但我更喜欢不必重启VS就能解决的方法。 - Wartodust

4

如果有人遇到同样的错误,我在这里留个记录。我已经解决了这个问题。我禁用了ReSharper,它就开始工作了。然后我重新启用了ReSharper,并清除了其缓存,现在在启用ReSharper的情况下它仍然可以正常工作。感谢magicandre1981指向了插件。

编辑:我使用的ReSharper版本是8.2 c#版,版本号为8.2.0.2160


可能告诉我们你使用的resharper版本。只是为了完整的信息。干杯! - Gang Gao

0

在Visual Studio 2015中,可以使用自动功能暂停来解决该问题。您将会收到如下弹窗提示。

enter image description here

只需点击重新启用即可。


0

我曾经遇到过同样的问题。我也使用ReSharper(2017.2),但不想禁用它。相反,我禁用了所有我不经常使用的其他扩展,并卸载了所有不需要的工作负载。这不仅解决了OutOfMemoryException问题,而且还大大减少了项目加载时间。


0

我刚刚遇到了这个问题。我慢慢地回溯了我的步骤,并逐个从dbContext中删除了DbSets,直到它再次正常工作。


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