Я пытаюсь сделать сжатое приложение с возможностью развертывания.
В настоящее время я беру набор файлов, которые я опубликовал, из моей среды IDE (Visual Studio 2008 - опубликованное приложение WPF) и сжимаю их в 7-Zip SFX-архив.
Мои пользователи спросили, могут ли они «установить в один клик» из 7-Zip exe. При создании архива есть список параметров. Есть ли способ установить какую-то комбинацию параметров, чтобы вызвать исполняемый файл установщика, который извлечен?
К сожалению, документация 7-Zip, похоже, не охватывает этот сценарий. Я видел несколько платных приложений, которые делают что-то похожее на это, но я пытаюсь сохранить инструмент, который пишу, без лицензионного кода, чтобы мы могли использовать его внутри.
windows
compression
7-zip
Майк Г
источник
источник
Ответы:
Вам нужно будет скачать LMZA SDK с 7-Zip . Файл "installer.txt" содержит документацию:
Вам нужно создать файл config.txt.
Например:
источник
Согласованное решение является правильным, но на самом деле оно не помогает объяснить, что вам действительно нужно делать !. Я прочитал это и многие другие решения, и я не мог найти полные и полные простые инструкции о том, как это сделать.
Если вы в замешательстве, как я, пожалуйста, прочитайте мой пост в блоге, который содержит пошаговые инструкции о том, как добиться того, что опубликовал Molly7244.
Как сделать самораспаковывающийся архив, который запускает ваш setup.exe с ключом 7zip -sfx
До моего сведения дошло, что ссылки могут стать мертвыми, поэтому вот шаги из моего блога
Шаг 1 - Настройте папку установки
Для этого создайте папку c: \ Install. Здесь мы скопируем все необходимые файлы.
Шаг 2 - 7Зип ваши установщики
Шаг 3 - Получить модуль расширения 7z-Extra sfx
Вам необходимо скачать 7z-Extra.
Шаг 4 - Настройте ваш config.txt
Я бы порекомендовал использовать NotePad ++ для редактирования этого текстового файла, так как вам потребуется кодировать в UTF-8, следующие инструкции используют notepad ++.
Введите что-то вроде этого:
Отредактируйте это, заменив [ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ v1.0.0.0] названием вашего продукта. Замечания о параметрах и опциях для установочного файла находятся здесь
Контрольно-пропускной пункт
Теперь у вас должна быть папка «c: \ Install» со следующими 3 файлами:
Шаг 5 - Создать архив
Эти инструкции я нашел в Интернете, но нигде не объяснил ни один из 4 шагов выше.
В командной строке введите следующее
Загляните в c: \ Install, и вы увидите, что у вас есть MyInstaller.exe
Запустите установщик
Дважды щелкните MyInstaller.exe, и он предложит вам сообщение. Нажмите OK, и файл setup.exe запустится.
PS Примечание по автоматизации
Теперь, когда вы работаете с этим в вашем каталоге c: \ Install, я бы создал файл «Install.bat» и поместил в него скрипт копирования.
Теперь вы можете просто редактировать и запускать Install.bat каждый раз, когда вам нужно пересобрать новую версию вашего пакета развертывания.
источник
ExecuteParameters
элемент вconfig.txt
? Например:C:\Install\MyInstaller.exe some_file.txt
выполнитsetup.exe some_file.txt
.Вы также должны посмотреть на NSIS . С его помощью вы можете создать установщик, сжатый тем же методом, который использует 7-Zip ( LZMA ), так что он должен быть примерно того же размера, и у вас будет полный контроль над процессом установки.
источник
Основываясь на ответе jcrawfor74, вот дополнительная информация:
Вместо 7zS.sfx вы также можете использовать файл 7zS2.sfx . Это намного меньшая версия (28 кБ против 140 кБ), но она не поддерживает файл config.txt. Таким образом, вы можете просто оставить это в команде копирования. Если вы просто хотите создать крошечные конфигурационные скрипты, это позволит вам создавать файлы EXE меньшего размера.
Меньший модуль SFX не задает никаких вопросов. Он извлекает файлы во временную папку как другой модуль, а затем находит исполняемые кандидаты. Согласно исходному коду (также доступен на странице загрузок), в C \ Util \ SfxSetup \ SfxSetup.c он взвешивает файлы по-разному в зависимости от их имени и расширения, а затем выбирает файл с самым высоким баллом.
Оба SFX-модуля автоматически запускаются от имени администратора , по крайней мере, в Windows 10, и это невозможно настроить. Хотя такое поведение может быть желательным для общесистемных установок, это не всегда так. Кроме того, это решение основано только на данных версии файла, поскольку в него не включен манифест, который явно указывает Windows, что делать. Совместимость с Windows просматривает файл и находит строки типа «Setup», которые приводят к запросу на повышение прав.
Если вам нужен модуль SFX, который не запрашивает разрешения администратора, вы можете перестроить модуль SFX из исходного кода или, проще, отредактировать информацию о версии файла с помощью редактора ресурсов, подобного этому . Просто удалите слово «Setup» из поля FileDescription, в случае упомянутого Resource Hacker скомпилируйте файл и сохраните файл EXE. Вы также можете выполнить этот шаг непосредственно для файла 7zS.sfx или 7zS2.sfx и сохранить его где-нибудь, чтобы использовать его для создания SFX-пакетов без повышенных прав. И вы можете использовать это, чтобы полностью настроить информацию о версии файла, чтобы поместить название вашего продукта или что-нибудь в нем, что описывает полезную нагрузку.
источник