Возможный дубликат:
Как можно объединить dll Windows C ++ с исполняемым файлом приложения C #?
Кто-нибудь знает о программе, которая может упаковать несколько DLL и .EXE в один исполняемый файл. Я не говорю здесь о .NET, я говорю об общих библиотеках DLL, некоторые из которых я создаю на C ++, некоторые - это внешние DLL, которые я не могу контролировать.
Мой конкретный случай - программа python, упакованная с py2exe, где я хотел бы «спрятать» другие DLL, упаковав их. Однако вопрос достаточно общий.
Вещи, на которые смотрели:
- ILMerge: специфично для .NET
- NETZ: специфично для .NET
- UPX: выполняет сжатие DLL, но не упаковывает несколько DLL + EXE
- FileJoiner:
Almost got it. It can pack executable + anything into one exe but when opened, it will launch the default opener for every file that was packed. So, if the user user dlldepend installed, it will launch it (becaues that's the default dll opener).
Может, это невозможно?
Резюме ответов:
Открытием DLL управляет ОС, поэтому упаковка DLL в исполняемый файл означает, что в какой-то момент их нужно извлечь в место, где ОС может их найти. Никакой волшебной пули.
Итак, то, что я хочу, невозможно.
Пока не...
Что-то меняем в ОС. Спасибо, Конрад, за то, что указал мне на ThinInstall, который виртуализирует приложение и механизм загрузки ОС. . С ThinInstall можно упаковать все в один exe (DLL, настройки реестра, ...).