installer — c ++, каков * умный * способ создания программы установки и обработки извлечения

я знаю как Создайте и код моей собственной программы установки, но я должен быть перенаправлен в какой-то момент. Этот момент, я уверен, также освещает других людей.

Я создал проект установки. Все сделано. Кроме установочных файлов внутри EXE.

Я знаю 2 разных способа сделать это:

  1. Создайте ресурс в EXE и вставьте RAR / ZIP файл.
  2. Положите сжатый архив с файлами вместе с EXE. EXE будет читать содержимое и данные из этого защищенного и сжатого ZIP.

Но то, что я хочу, это число 1. Я хочу встроить это. Но;

  1. Как правильно встраивать это? Другие создатели установки делают то же самое? Вставить ресурс в виде сжатого одиночного почтового индекса в EXE? Или они еще один трюк?
  2. Как вы извлекаете файлы? На лету по памяти? Как читать каждый файл по одному. Синхронизировано. Или сначала скопируйте ZIP в temp и извлеките из него.
  3. Или даже встраивать все файлы отдельно в ресурсы.

Я даже думаю, что если я должен создать простой MSI без диалогов и встроить его и запустить из фона, но я хочу взять на себя все управление. Я хочу, чтобы все принадлежало оригинальной настройке, которую я создал.

Замечания:

Я хочу сделать свои собственные диалоги, эффекты, процедуры, функции и
шаги. Да, MSI приемлем, но я буду придерживаться его возможностей. Ой,
Если я могу продлить его, зачем мне тратить больше времени на это?
вместо того, чтобы сделать свой собственный? Я так растерялся … Я говорю об очень большом проекте установки здесь. Не просто стандартный уродливый интерфейс с меньшим количеством функций. По крайней мере, я попробую 🙂

Не давайте мне образец / код просто покажи мне правильный путь, пожалуйста.

  1. Создайте ZIP-совместимый EXE-файл, который читает себя как ZIP, читает список файлов и распаковываете.
  2. Создайте не zip-совместимый EXE-файл с скрытым телом, прочитайте эту область (ищите) и получите список & извлечь.

0

Решение

Правильный способ сделать это — использовать технологию установщика Windows, иначе MSI. Существует замечательный набор инструментов от Microsoft под названием WiX, который вы можете использовать, чтобы значительно упростить процесс.

http://wix.codeplex.com/

1

Другие решения

Если вы действительно хотите заново изобрести колесо, вы можете просмотреть исходный код WiX и узнать, как все это делается.

1

  1. Создайте ZIP-совместимый EXE-файл, который читает себя как ZIP, читает список файлов и распаковываете.
  2. Создайте не zip-совместимый EXE-файл с скрытым телом, прочитайте эту область (ищите) и получите список & извлечь.
1

Зачем писать свой? Гораздо проще использовать WiX (http://wixtoolset.org/) с опционально графическим интерфейсом, таким как WiXEdit (http://wixedit.sourceforge.net/). Задумывались ли вы о дополнительных требованиях, таких как удаление и т. Д …

Удачи!

0

Было бы InnoSetup помочь с вашей проблемой? Вы можете персонализировать диалоги и значительно расширить его функциональность.

0
По вопросам рекламы [email protected]