环境:
使用.NET 4.0的
我们有一个可以播放视频的桌面应用程序。此视频是项目的一部分,该项目已打包到安装程序中。每隔一段时间,构建安装程序项目就会显示以下错误消息:
存储空间不足,无法完成此操作
如果我重新启动Visual Studio,它就能正常工作。
有没有办法避免这种情况?有没有更好的方法将视频打包到安装程序中?
发布于 2011-07-11 15:16:17
当构建过程需要大量RAM内存并且无法获得时,通常会发生这种情况。由于重新启动Visual Studio可以修复问题,因此很可能您的情况也是如此。
尝试关闭一些正在运行的应用程序。您还可以尝试向计算机添加更多RAM或增加页面文件。
发布于 2013-05-03 16:54:14
Problem
在我的例子中,问题出在一个测试项目中,该项目包含一个非常大的(1.5 an )测试文件作为嵌入式资源。发生这种情况时,我的机器中有16 8GB的RAM,8 8GB的空闲空间,所以RAM不是问题所在。
我们有可能达到CLR在任何单个对象上的2 GB限制。在不深入研究MSBuild在幕后做什么的情况下,我只能推测在编译时,嵌入的资源被加载到达到此限制的对象图中。
该错误消息非常无用。当我看到它时,我的第一个想法是,“我是否用完了磁盘空间?”
解决方案
它是一个文件验证测试项目。其中一个需求是能够处理这种大小的文件,因此从表面上看,我的团队认为将其嵌入到测试用例中是合理的。
我们修复了错误,方法是将文件移动到网络上(与生产中验证器访问的方式相同),并将测试标记为集成测试而不是单元测试。毕竟,单元测试不应该是快速运行的吗?
发布于 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:
{path}\devenv.exewhere
{path}is the path to
devenv.exe` /LARGEADDRESSAWARE (您可以通过转到Visual Studio快捷方式的属性来找到它)。
这将允许devenv.exe
访问3 2GB的内存,而不是2 2GB。
https://stackoverflow.com/questions/6626056
复制相似问题