Solución:
Deberá descargar el SDK de LMZA desde 7-Zip. El archivo “installer.txt” contiene documentación:
7zSD.sfx es un módulo SFX para instaladores. 7zSD.sfx utiliza msvcrt.dll.
Los módulos SFX para instaladores permiten crear programas de instalación. Dicho módulo extrae el archivo a la carpeta temporal y luego ejecuta el programa especificado y elimina los archivos temporales una vez finalizado el programa. El archivo autoextraíble para los instaladores debe crearse como uniendo 3 archivos: SFX_Module, Installer_Config, 7z_Archive. Installer_Config es un archivo opcional. Puede utilizar el siguiente comando para crear un archivo de autoextracción del instalador:
copy /b 7zSD.sfx + config.txt + archive.7z archive.exe
Necesita crear un archivo config.txt.
El archivo de configuración contiene comandos para el instalador. El archivo comienza desde la cadena
;[email protected]@!UTF-8!
y termina con;[email protected]@!
. El archivo debe estar escrito en codificación UTF-8. El archivo contiene pares de cadenas:ID_String = “Valor”
Title
Título de los mensajes
BeginPrompt
Iniciar mensaje de solicitud
Progress
El valor puede ser “sí” o “no”. El valor predeterminado es “sí”.
RunProgram
Comando para ejecutar. El valor predeterminado es “setup.exe”. La subcadena %% T se reemplazará con la ruta a la carpeta temporal, donde se extrajeron los archivos
Directory
Prefijo de directorio para “RunProgram”. El valor predeterminado es “. “
ExecuteFile
Nombre del archivo para ejecutar
ExecuteParameters
Parámetros de “ExecuteFile”
Por ejemplo:
;[email protected]@!UTF-8! Title="7-Zip 4.00" BeginPrompt="Do you want to install the 7-Zip 4.00?" RunProgram="setup.exe" ;[email protected]@!
La solución acordada es correcta, pero en realidad no ayuda a explicar lo que realmente necesita hacer. Leí esta y muchas otras soluciones y no pude encontrar instrucciones sencillas completas y completas sobre cómo hacer esto.
Si está confundido como yo, lea la publicación de mi blog que proporciona instrucciones paso a paso sobre cómo lograr lo que Molly7244 ha publicado.
Cómo hacer un archivo autoextraíble que ejecute su setup.exe con el conmutador 7zip -sfx
Se me informó que los enlaces pueden volverse muertos, así que aquí están los pasos, de mi blog.
Paso 1: configura tu carpeta de instalación
Para facilitar esto, cree una carpeta c: Install. Aquí es donde copiaremos todos los archivos requeridos.
Paso 2 – 7 Comprima sus instaladores
- Vaya a la carpeta que tiene su .msi y su setup.exe
- Seleccione tanto el .msi como el setup.exe
- Haga clic derecho y elija 7Zip -> “Agregar al archivo”
- Nombre su archivo “Installer.7z” (o un nombre de su elección)
- Haga clic en Aceptar
- Ahora debería tener “Installer.7z”.
- Copie este archivo .7z en su directorio c: Install
Paso 3: obtenga el módulo de extensión 7z-Extra sfx del 7z SDK
Necesitas descargar el SDK 7z
- Siga este enlace para descargar 7Zip
- Debe descargar la versión 19.00 (a partir de diciembre de 2019) ya que la versión beta no contiene los archivos correctos.
- Un enlace de descarga de SDK.
- Extraiga los archivos del SDK de 7zip.
- Copie el archivo “7zSD.sfx” del directorio bin del SDK en c: Install
Paso 4: configura tu config.txt
Recomendaría usar NotePad ++ para editar este archivo de texto ya que necesitará codificar en UTF-8, las siguientes instrucciones usan notepad ++.
- Con el explorador de Windows, vaya a c: Install
- haga clic derecho y elija “Nuevo archivo de texto” y asígnele el nombre config.txt
- haga clic derecho y elija “Editar con NotePad ++
- Haga clic en el “Menú de codificación” y seleccione “Codificar en UTF-8”.
-
Ingrese algo como esto:
;[email protected]@!UTF-8! Title="SOFTWARE v1.0.0.0" BeginPrompt="Do you want to install SOFTWARE v1.0.0.0?" RunProgram="setup.exe" ;[email protected]@!
Edita este reemplazo [SOFTWARE v1.0.0.0] con el nombre de su producto. Las notas sobre los parámetros y opciones para el archivo de configuración están aquí.
Control
Ahora debería tener una carpeta “c: Install” con los siguientes 3 archivos:
- Instalador.7z
- 7zS.sfx
- config.txt
Paso 5: crea el archivo
Estas instrucciones las encontré en la web, pero en ninguna parte explican ninguno de los 4 pasos anteriores.
- Abra una ventana de cmd, Ventana + R -> cmd -> presione enter
-
En la ventana de comandos, escriba lo siguiente
cd cd Install copy /b 7zSD.sfx + config.txt + Installer.7z MyInstaller.exe
-
Busque en c: Install y verá que tiene un MyInstaller.exe
Has terminado
Ejecuta el instalador
Haga doble clic en MyInstaller.exe y aparecerá su mensaje. Haga clic en Aceptar y se ejecutará setup.exe.
PS Nota sobre automatización
Ahora que tiene esto funcionando en su directorio c: Install, crearía un archivo “Install.bat” y pondría el script de copia en él.
copy /b 7zSD.sfx + config.txt + Installer.7z MyInstaller.exe
Ahora puede editar y ejecutar Install.bat cada vez que necesite reconstruir una nueva versión de su paquete de implementación.
También debería mirar NSIS. Con él, puede crear un instalador que se comprime con el mismo método que usa 7-Zip (LZMA), por lo que debe tener aproximadamente el mismo tamaño y usted tiene control total sobre el proceso de instalación.