Estoy tratando de hacer una aplicación comprimible que pueda implementarse.
Actualmente estoy tomando un conjunto de archivos que publiqué desde mi IDE (Visual Studio 2008 - aplicación publicada de WPF) y comprimiéndolos en un archivo SFX de 7 Zip.
Mis usuarios me han preguntado si pueden "instalar con un clic" desde el 7-Zip exe. Hay una lista de parámetros cuando estoy creando el archivo. ¿Hay alguna manera de establecer algún tipo de combinación de parámetros para invocar el ejecutable del instalador que se extrae?
Lamentablemente, la documentación de 7-Zip no parece cubrir este escenario. He visto varias aplicaciones pagas que hacen algo similar a esto, pero estoy tratando de mantener la herramienta que estoy escribiendo libre de código con licencia para que podamos usarla internamente.
fuente
Respuestas:
Deberá descargar el SDK de LMZA desde 7-Zip . El archivo "installer.txt" contiene documentación:
Necesita crear un archivo config.txt.
Por ejemplo:
fuente
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 simples completas y completas sobre cómo hacer esto.
Si está confundido como estaba, lea mi publicación de 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 tu setup.exe con el interruptor 7zip -sfx
Me llamaron la atención que los enlaces pueden quedar 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: \ Instalar. Aquí es donde copiaremos todos los archivos requeridos.
Paso 2 - 7 Comprime tus instaladores
Paso 3: obtenga el módulo de extensión szx 7z-Extra
Necesita descargar el 7z-Extra.
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 están usando notepad ++.
Ingrese algo como esto:
Edite esto reemplazando [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:
Paso 5 - Crea el archivo
Estas instrucciones las encontré en la web pero en ninguna parte explicaron ninguno de los 4 pasos anteriores.
En la ventana de comandos, escriba lo siguiente
Mire en c: \ Install y ahora verá que tiene un MyInstaller.exe
Ejecuta el instalador
Haga doble clic en MyInstaller.exe y se le mostrará su mensaje. Haga clic en Aceptar y se ejecutará el archivo setup.exe.
Nota de PS 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.
Ahora puede editar y ejecutar Install.bat cada vez que necesite reconstruir una nueva versión de su paquete de implementación.
fuente
ExecuteParameters
elemento enconfig.txt
? Por ejemplo:C:\Install\MyInstaller.exe some_file.txt
se ejecutaríasetup.exe some_file.txt
.También deberías mirar NSIS . Con él, puede crear un instalador que se comprima con el mismo método que utiliza 7-Zip ( LZMA ), por lo que debe ser aproximadamente del mismo tamaño y tener control total sobre el proceso de instalación.
fuente
Sobre la base de la respuesta de jcrawfor74, aquí hay información adicional:
En lugar de 7zS.sfx , también puede usar el archivo 7zS2.sfx . Esta es una versión mucho más pequeña (28 kB frente a 140 kB) pero no es compatible con el archivo config.txt. Entonces puede dejarlo fuera en el comando copiar. Si solo desea crear pequeños scripts de configuración, esto le permite crear archivos EXE más pequeños.
El módulo SFX más pequeño no hace preguntas. Extrae los archivos a una carpeta temporal como el otro módulo, y luego encuentra candidatos ejecutables. De acuerdo con el código fuente (también disponible en la página de descargas), en C \ Util \ SfxSetup \ SfxSetup.c, pesa los archivos de manera diferente según su nombre y extensión y luego elige el archivo con la puntuación más alta.
Ambos módulos SFX se ejecutan automáticamente como administrador , al menos en Windows 10, y esto no se puede configurar. Si bien este comportamiento puede ser deseable para configuraciones de todo el sistema, este no siempre es el caso. Además, esta decisión solo se basa en los datos de la versión del archivo porque no se incluye ningún manifiesto que explícitamente le indique a Windows qué hacer. La compatibilidad de Windows mira el archivo y encuentra cadenas como "Configuración" que conducen a la solicitud de elevación.
Si necesita un módulo SFX que no solicite permisos de administrador, puede reconstruir el módulo SFX desde el origen o, más simple, editar la información de la versión del archivo con un editor de recursos como este . Simplemente elimine la palabra "Setup" del campo FileDescription, en el caso del mencionado Resource Hacker compile el archivo y guarde el archivo EXE. También puede realizar este paso en el archivo 7zS.sfx o 7zS2.sfx directamente y guardarlo en algún lugar para que pueda usarlo para crear paquetes SFX no elevados. Y puede usar esto para personalizar completamente la información de la versión del archivo para poner el nombre de su producto o cualquier cosa que describa la carga útil.
fuente