c# - C# Compile OutOfMemory 错误,而我正在尝试动态生成要编译的文件操作代码
问题描述
直截了当, 我正在尝试编写一个程序,将一些大文件中的字节封装到可执行文件(.exe)中。然后可以通过执行该 exe 文件重新安装这些文件。
我从最愚蠢的方法开始(动态生成要编译的代码)
- 将目标文件中的字节数组读入程序。
- 动态生成可以稍后编译的代码,这些代码即将初始化并将那些字节数组写入磁盘。(所以是非常难的字节数组初始化代码如:byte[] file = new byte[25, 122, 16, 38, 54, .....]根据文件生成。)
- 以编程方式使用 C# 编译器编译这些代码。
- 获取输出可执行文件。
这是我生成的代码,例如:
byte[] Fningjpg = new byte[]{ 255,216,255,224,54,26,199,224,135,253,22,79,135,2........very very long]
File.WriteAllBytes(@"ning.jpg",Fningjpg);
Console.WriteLine("Fningjpg bytes length: "+Fningjpg.Length);
Fningjpg= null;
System.GC.Collect();
尽管效率低下,但它在中等大小的文件中运行良好。
在我编译试图封装大文件 (30MB) 的代码时发生OutOfMemory错误,该文件具有非常长的字节数组声明代码。
有没有更好的方法来满足这个要求?谢谢!(我的文件最多只有 100 mb!这个大小的解决方案就足够了!)
解决方案
推荐阅读
- java - Java 控制台应用程序 jar - 处理异常并在 Windows 命令 prmpt 中继续
- algorithm - 求算法的时间复杂度
- google-chrome-extension - 使用 all_urls 时从代码有条件地禁用或启用 Chrome 扩展的方法
- python - Tkinter:将功能分配给按钮时出现KeyError
- javascript - javascript 中的“严格”模式如何改变这段代码的输出?
- spring - 为什么没有调用 Flux 发布者 doOnComplete 方法?
- c# - 从 Windows 窗体中的数据连接自动生成控件
- c# - 实体框架模型构建器在两个不同的文件中?
- python - 当我在 pygame 中打印某些内容时,一个错误消失了
- sql - 存储过程中 else 附近的语法不正确