c# - Visual Studio:无法运行具有大量资源的项目
问题描述
运行我的项目时遇到一个奇怪的问题。我在资源中添加了一个文件1.8GB
,我将文件类型设置为Binary
. 构建项目不会给我带来问题,但是当我尝试运行它时说:
我还注意到设计师抛出了一个错误OutMemoryException
。
我正在使用 Visual Studio 2019 - 企业版。
解决方案
我注意到这是作为 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 或者由清单解决,它仍然是一个馊主意。
推荐阅读
- html-framework-7 - 导航到其他页面后使用 DOM7 执行某些操作
- javascript - JQuery目标向上或向下滚动,但不是像素
- php - 具有自定义操作的 Drupal 8 表单
- html - 如何使用绝对位置平滑拉伸 div?
- react-native - 有天赋的聊天问题,消息在文本输入时跳到屏幕上
- java - 带有描述的 Hotspot VM 操作列表
- php - 如何在sql中的3表查询中显示确切结果
- javascript - 努力定位使用 jQuery 创建的 div 元素
- html - 使用 Angular 或 Angular 材质的 HTML 表格单元格中的垂直线和水平双向箭头
- node.js - 如何在Node js中连续接收tcp连接数据