首页 > 解决方案 > Visual Studio:无法运行具有大量资源的项目

问题描述

运行我的项目时遇到一个奇怪的问题。我在资源中添加了一个文件1.8GB,我将文件类型设置为Binary. 构建项目不会给我带来问题,但是当我尝试运行它时说: 在此处输入图像描述

我还注意到设计师抛出了一个错误OutMemoryException

我正在使用 Visual Studio 2019 - 企业版。

标签: c#visual-studio

解决方案


我注意到这是作为 x86/32 位应用程序运行的。现在的一条规则是这些文件不允许大于 4 GiB。这是您在 x32 下可以寻址的最大内存。

现在.NET 应用程序还有另一个问题。实际上,在 x32 上,它面临着2 GiB 的较低内存限制。使用编译器开关,在 x64 操作系统上可以达到 3 GiB 甚至 4 GiB。

请注意,无论如何,内存中的任何单个对象都不允许大于 2 GiB。当然,对于这样的大小,使用 Fragmentation 可能也很难在内存中找到任何空间。

该 .zip 文件为 1.8 GiB。当将文件加载到内存中时,通常所有压缩都将被撤消。所以我不认为这可能会奏效。

除了自动执行的档案(通常有自动拆分功能)之外,我只看到了一个集成到 .exe 中的大文件我记得 35 年了。它是 DVD 上 Game Sword of the Stars 的安装程序。这是一个愚蠢的想法,因为那时 Vista UAC 出现了。Vista UAC甚至会在显示该提示之前扫描整个文件。因此,在尝试执行甚至获得“这需要提升提示”之间存在很大的延迟。.exe 并不真正期望有那么大的大小。即使他们修复了 UAC 或者由清单解决,它仍然是一个馊主意。


推荐阅读