Самораспаковывающийся установщик 7zip стирает файлы до завершения установки - PullRequest
2 голосов
/ 01 декабря 2011

Мы создали новый установщик, который работает очень хорошо, используя Visual Studio и WIX. Теперь я пытаюсь сжать его и сделать самораспаковывающийся установщик для распространения.

Я могу просто создать installer.exe, и он запускается. Программа установки запускается, но не работает.

Я думаю, это потому, что 7zip exe удаляет файлы до того, как установщик сможет их использовать (мы запускаем setup.exe для запуска установщика).

Я искал по всему, но не могу найти никаких подсказок о том, как сделать эту работу. Я пропускаю опцию для 7zip?

Строка создания:

7z a myInstaller.7z installer/bin/release/*
copy /b \program files\7-zip\7zsd.sfx config.txt myInstaller.exe

Config.txt - это

;!@Install@!UTF-8!
Title="My Title"
RunProgram="Setup.exe"
;!@InstallEnd@!

Есть обходной путь для http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/3731985c-d9cc-4403-ab7d-992a0971f686 (примерно на 7/8 вниз по Филлиссу), но это кажется скрипучим. Это действительно единственный способ заставить это работать?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Я не могу сразу сказать по вашему образцу, что с ним не так.Однако вот что я использовал для создания самораспаковывающегося архива 7z, и он работал хорошо, удаляя файлы только после завершения установки.

Файл конфигурации:

;!@Install@!UTF-8!
Title="My Installer"
InstallPath="%temp%\\Temp_Installation"
RunProgram="setup.exe"
Delete="%temp%\\Temp_Installation"
;!@InstallEnd@!

Сценарий создания(Нет):

<exec program="${_7z.exe}" workingdir="${path}\SFX">
  <arg line="a -y -r ${path}\setup.7z" />
  <arg line="${paths.build.to7z}\*.*"/>
</exec>

<exec program="cmd.exe" verbose="true" workingdir="${path}\SFX">
  <arg value="/C" />
  <arg line="copy /b 7ZSD_All.sfx + ${config} + ${path}\setup.7z" />
  <arg file="${paths.build.sfx}\setup.exe"/>
</exec>

Надеюсь, это поможет вам найти источник вашей проблемы.Вы также можете проверить, используете ли вы самую последнюю версию SFX-модуля 7z.

0 голосов
/ 13 июля 2016

У меня работает, когда я опускаю Удалить:

;!@Install@!UTF-8!
Title="My Installer"
InstallPath="%temp%\\Temp_Installation"
RunProgram="setup.exe"
;!@InstallEnd@!
...