7

Я играю с 7-Zip, чтобы создать исполняемый файл самораспаковывающегося архива (SFX). Я проследил за документацией, но не смог подобраться ближе. Я использую 7-Zip 32-битные и 7-Zip дополнительные 32-битные.

Вот где я сначала застрял, чтобы создать файл SFX, вам нужно вызвать следующий скрипт:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe

Это сгенерирует archive.exe котором будет файл config.txt для запуска соответствующей программы. Вот как выглядит файл config.txt :

;!@Install@!UTF-8!
Title="7-Zip 4.00"
BeginPrompt="Do you want to install the 7-Zip 4.00?"
RunProgram="setup.exe"
;!@InstallEnd@!`

Это сгенерирует archive.exe .

Далее в документации рассказывается, как добавить файл. Мне нужно сжать файл setup.exe чтобы я использовал следующий скрипт.

7z a -sfx a.exe setup.exe

Я запутался в этом примере. Я использую archive.exe вместо a.exe? И если я это сделаю, я получаю сообщение об ошибке, что archive.exe не поддерживается типом архива.

Если я сохранил имя a.exe и setup.exe в папке a, а также добавил в нее файл archive.exe используя предыдущий сценарий, все, что он делал, - это извлекал файл в локальную папку, а не выполнял его.

Почему это происходит?

4 ответа4

7

Я создал пошаговые инструкции о том, как это сделать, поскольку я также был очень смущен тем, как заставить это работать.

Как сделать самораспаковывающийся архив, который запускает ваш setup.exe с ключом 7zip -sfx

Шаг 1 - Настройте папку установки

Для этого создайте папку c:\Install. Здесь мы скопируем все необходимые файлы.

Шаг 2 - 7Зип ваши установщики

  1. Перейдите в папку, в которой находятся MSI-файл и файл setup.exe.
  2. Выберите MSI-файл и файл setup.exe.
  3. Щелкните правой кнопкой мыши и выберите 7Zip -> "Добавить в архив"
  4. Назовите свой архив "Installer.7z" (или имя по вашему выбору)
  5. Нажмите Ok
  6. Теперь у вас должен быть «Installer.7z».
  7. Скопируйте этот файл .7z в ваш каталог c:\Install

Шаг 3 - Получить модуль расширения 7z-Extra sfx

Вам необходимо скачать 7z-Extra.

  1. Перейдите по этой ссылке, чтобы скачать 7Zip
  2. Вам необходимо загрузить версию 9.20 (с @ May-2015), поскольку бета-версия не содержит правильных файлов.
  3. Прямая ссылка для скачивания .
  4. Распакуйте 7zip дополнительные файлы
  5. Скопируйте файл "7zS.sfx" в c:\Install

Шаг 4 - Настройте ваш config.txt

Я бы порекомендовал использовать NotePad++ для редактирования этого текстового файла, так как вам нужно будет кодировать в UTF-8, следующие инструкции используют notepad++.

  1. С помощью проводника Windows перейдите в c:\Install
  2. щелкните правой кнопкой мыши и выберите "Новый текстовый файл" и назовите его config.txt
  3. щелкните правой кнопкой мыши и выберите «Редактировать с помощью NotePad++»
  4. Нажмите "Меню кодирования" и выберите «Кодировать в UTF-8»
  5. Введите что-то вроде этого:
    ;!@ Установить @!UTF-8!
    Title = "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ v1.0.0.0" BeginPrompt = "Хотите установить ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ v1.0.0.0?"RunProgram =" setup.exe ";!@ InstallEnd @!
    

Отредактируйте это, заменив [ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ v1.0.0.0] названием вашего продукта. Замечания о параметрах и опциях для установочного файла находятся здесь

Контрольно-пропускной пункт

Теперь у вас должна быть папка «c:\Install» со следующими 3 файлами:

  1. Installer.7z
  2. 7zS.sfx
  3. config.txt

Шаг 5 - Создать архив

Эти инструкции я нашел в Интернете, но нигде не объяснил ни один из 4 шагов выше.

  1. Откройте окно cmd, Window + R -> cmd -> нажмите enter
  2. В командной строке введите следующее
cd \
cd Install
copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe
  1. Загляните в c:\Install и вы увидите, что у вас есть MyInstaller.exe
  2. Вы закончили

Запустите установщик

Дважды щелкните MyInstaller.exe, и он предложит вам сообщение. Нажмите OK, и файл setup.exe запустится.

PS Примечание по автоматизации

Теперь, когда вы работаете с этим в вашем каталоге c:\Install, я бы создал файл «Install.bat» и поместил в него скрипт копирования.

[csharp] copy /b 7zS.sfx + config.txt + Installer.7z MyInstaller.exe [/csharp]

Теперь вы можете просто редактировать и запускать Install.bat каждый раз, когда вам нужно пересобрать новую версию вашего пакета развертывания.

5

Гораздо проще использовать 7-Zip GUI для создания самораспаковывающегося архива. Выберите опцию SFX при создании архива 7z.

См. Эту статью wikiHow для подробных шагов.

Снимок экрана (с кружком от руки) опции 7-Zip SFX

5

Это почти правильно.

На шаге:

copy /b 7zS.sfx + config.txt + archive.7z archive.exe

файл archive.7z - это 7-zip архив, содержащий все ваши файлы. Это должно быть последним шагом.

Перед этим шагом должен быть создан archive.7z, содержащий setup.exe и любые другие необходимые ему файлы. Создайте это, используя:

7z a archive.7z setup.exe
0

Это легко с 7zip SFX-Packager (это файл с открытым исходным кодом .bat ) и простым способом «перетаскивать» папки на него, и он создает портативный / самораспаковывающийся пакет.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .