Как добавить большой файл к ресурсу в проекте c #? - PullRequest
3 голосов
/ 23 марта 2011

Я делал программу, которая компилирует скрипт на c # для создания EXE-приложения с использованием Microsoft.CSharp.CSharpCodeProvider. В процессе создания EXE-файла он внедряет файл программным путем, и EXE-файл считывает этот ресурс при выполнении в более позднем процессе. Когда я пытаюсь добавить большой файл и компилировать его, компилятор выдает ошибку типа «Невозможно добавить ресурс. Недостаточно памяти» или что-то в этом роде. Есть ли способ добавить большой файл в ресурс проекта c #?

1 Ответ

5 голосов
/ 23 марта 2011

Не встраивайте ресурсы такого размера в исполняемый файл.Он не только бомбит компилятор, но и вашу программу.Все, что больше ~ 500 мегабайт, является проблемой для 32-разрядной операционной системы, в адресном пространстве не будет дыры, достаточно большой, чтобы соответствовать ей.Вы можете получить представление о том, как он распределяется между кодом и данными, с помощью утилиты SysInternals VMMap.

Поскольку вы используете CodeDom, вы можете использовать опцию компилятора / linkresource, чтобы сохранить файл вне исполняемого файла.,У вас все еще может быть проблема во время выполнения, но это еще одна проблема.

...