首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >存储空间不足,无法完成此操作

存储空间不足,无法完成此操作
EN

Stack Overflow用户
提问于 2011-07-08 22:38:04
回答 11查看 69.2K关注 0票数 23

环境:

使用.NET 4.0的

  • Visual Studio旗舰版2010
  • Windows XP
  • WPF桌面应用程序

我们有一个可以播放视频的桌面应用程序。此视频是项目的一部分,该项目已打包到安装程序中。每隔一段时间,构建安装程序项目就会显示以下错误消息:

存储空间不足,无法完成此操作

如果我重新启动Visual Studio,它就能正常工作。

有没有办法避免这种情况?有没有更好的方法将视频打包到安装程序中?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-07-11 15:16:17

当构建过程需要大量RAM内存并且无法获得时,通常会发生这种情况。由于重新启动Visual Studio可以修复问题,因此很可能您的情况也是如此。

尝试关闭一些正在运行的应用程序。您还可以尝试向计算机添加更多RAM或增加页面文件。

票数 13
EN

Stack Overflow用户

发布于 2013-05-03 16:54:14

Problem

在我的例子中,问题出在一个测试项目中,该项目包含一个非常大的(1.5 an )测试文件作为嵌入式资源。发生这种情况时,我的机器中有16 8GB的RAM,8 8GB的空闲空间,所以RAM不是问题所在。

我们有可能达到CLR在任何单个对象上的2 GB限制。在不深入研究MSBuild在幕后做什么的情况下,我只能推测在编译时,嵌入的资源被加载到达到此限制的对象图中。

该错误消息非常无用。当我看到它时,我的第一个想法是,“我是否用完了磁盘空间?”

解决方案

它是一个文件验证测试项目。其中一个需求是能够处理这种大小的文件,因此从表面上看,我的团队认为将其嵌入到测试用例中是合理的。

我们修复了错误,方法是将文件移动到网络上(与生产中验证器访问的方式相同),并将测试标记为集成测试而不是单元测试。毕竟,单元测试不应该是快速运行的吗?

票数 8
EN

Stack Overflow用户

发布于 2016-03-12 00:59:36

当我试图在Windows XP的Visual Studio2010中编译我的C#解决方案时,我遇到了这个问题。有一个项目有相当数量的嵌入资源(结果程序集的大小约为140MiB),我无法编译解决方案,因为我正在获取

存储空间不足,无法完成此操作

我的构建输出中出现错误。

关于这个问题的答案都没有帮助,但我确实在social.msdn.microsoft.com上找到了ScottBurton42的"Not enough storage is available to complete this operation“的答案。它建议将3GB开关添加到Boot.ini文件中,并使devenv.exe支持大地址。在我的Boot.ini文件中添加3GB开关对我来说是可行的(我认为devenv.exe for Visual Studio2010及更高版本已经支持大地址)。

我的答案就是基于这个答案。

方案1: Set /3GB Boot.ini switch

MSDN上的Memory Support and Windows Operating Systems页面上写道:

除非在Boot.ini文件中使用/3GB开关,否则进程和应用程序的虚拟地址空间仍然限制为2 GB。

/3GB交换机将3 GB的虚拟地址空间分配给在进程标头中使用IMAGE_FILE_LARGE_ADDRESS_AWARE的应用程序。此开关允许应用程序寻址超过2 GB的1 GB额外虚拟地址空间。

进程和应用程序的虚拟地址空间仍然限制为2 GB,除非在Boot.ini file中使用/3GB交换机。以下示例显示如何在Boot.ini文件中添加/3GB参数以启用应用程序内存调整:

default=multi(0)disk(0)rdisk(0)partition(2)\WINNT operating systems multi(0)disk(0)rdisk(0)partition(2)\WINNT="????“/3GB的引导加载程序

注意:上例中的"????“是操作系统的编程名称。

在Windows XP中,可以通过转到

  • 系统属性→高级→启动和恢复→设置→系统启动→编辑

MSDN上/3GB交换机的页面上写着:

在32位版本的

上,/3GB参数启用4GTRAM调优,该特性将用户模式虚拟地址空间扩大到3 GB,并将内核模式组件限制为剩余的1 GB。

Windows Server2003、Windows XP和Windows2000支持/3GB参数。在Windows Vista和更高版本的Windows中,请使用BCDEdit中的IncreaseUserVA元素。

然后,重新启动机器将使设置生效。

Solution 2: Make devenv.exe large address aware:

  1. 打开Visual Studio命令提示符(或开发人员命令提示符,具体取决于Visual Studio的版本)
  2. 键入并执行以下命令行:

{path}\devenv.exewhere{path}is the path todevenv.exe` /LARGEADDRESSAWARE (您可以通过转到Visual Studio快捷方式的属性来找到它)。

这将允许devenv.exe访问3 2GB的内存,而不是2 2GB。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6626056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档