Возможный дубликат:
Как можно слить dll С++ в приложение EXE С#?
Кто-нибудь знает о программе, которая может упаковать несколько DLL и .EXE в один исполняемый файл. Я не говорю о случае .NET здесь, я говорю об общих DLL-библиотеках, некоторые из которых я генерирую на С++, некоторые из которых являются внешними DLL. Я не контролирую.
Моим конкретным случаем является программа python, упакованная с py2exe, где я хотел бы "скрыть" другую DLL, упаковывая их. Вопрос достаточно общий, хотя.
То, что смотрело:
- ILMerge: для .NET.
- NETZ: для .NET.
- UPX: делает компрессию DLL, но не множественную упаковку DLL + EXE
- FileJoiner:
Почти это получилось. Он может упаковывать исполняемый файл + что-либо в один exe, но при его открытии он запускает открыватель по умолчанию для каждого упакованного файла. Таким образом, если пользовательский пользователь dlldepend установлен, он запустит его (это означает, что стандартный DLL-открыватель).
Может быть, это невозможно?
Резюме ответов:
Открытие DLL управляется ОС, поэтому упаковка DLL в исполняемый файл означает, что в какой-то момент они должны быть извлечены в место, где ОС может их найти. Нет волшебной пули.
Итак, я не хочу.
Если только...
Мы что-то меняем в ОС. Спасибо, что Конрад указал мне на ThinInstall, которые виртуализируют приложение и механизм загрузки ОС. С ThinInstall можно упаковать все в один exe (DLL, настройки реестра,...).