Hacer portable una aplicación con NSIS

última actualización el 22 de mayo de 2009, 19:21 por Carlos-vialfa
Publicado por Carlos-vialfa


I) Introducción


Este es otro tutorial que permite seguir paso a paso la creación de un instalador con NSIS y el template libre de Karl Loncarek. Para este tutorial, he retomado el ejemplo de portabilización de heidiSQL y lo he adaptado para permitir la comparación de las dos técnicas. Cabe resaltar que el template utilizado es mucho más completo que el que os había presentado para AutoIt, y únicamente describiré aquí sus principales funciones es decir la creación de un instalador simple para una aplicación que fácilmente puede ser portabilizada.

Nota: Si el programa posee un driver, no puede portabilizado con este método.
Si el programa posee archivos en el directorio Windows o en otras carpetas del sistema, tampoco podrá ser portabilizado.
Si hay necesidad de guardar una dll/ocx, tampoco podrá ser portabilizado.

Como con AutoIt, necesitamos conocer las claves de registro utilizadas por el programa que va a ser portabilizado, y las eventuales carpetas de configuración (a parte de las sub-carpetas de la aplicación), como las carpetas de la aplicación en el perfil actual. Para HeidiSQL no hay carpetas y la única clave de registro es: HKEY_CURRENT_USER\Software\HeidiSQL
Descargamos y abrimos el template de Karl Loncarek con un editor de texto, como PSPad o Notepad+2
Pasamos las primeras líneas de comentarios que empiezan con un punto y coma (;). Es el copyright del template.


II) Modificación del template


Es posible modificar las primeras líneas para poner nuestro nombre, la versión o nuestro sitio Web.
Pasemos ahora a la sección Define constants del template.
Todas las líneas de esta sección comienzan con !define y los valores a modificar están entre dos comillas (“”).
!define AUTHOR ""; => Ponemos nuestro nombre o seudónimo entre las dos comillas ("" )
!define APP "" ; => Ponemos el nombre de la aplicación y su carpeta entre las dos comillas.
!define VER "0.0.0.0" ; Modificamos los 4 ceros para indicar el n° de versión del instalador.
!define EXE "" ; Ponemos el nombre del ejecutable entre las comillas
!define PNAME "${App}Portable" ; formato del nombre del instalador
!define ICON "${PNAME}.ico" ; si deseamos poner un icono personalizado (diferente al predeterminado de NSIS) lo ponemos en la misma carpeta que la del template con el mismo formato de nombre, comentamos la línea con un punto y coma si queremos conservar el icono NSIS.
!define SPLASHIMAGE "${PNAME}.jpg" ; Si deseamos añadir un splashscreen al instalador, comentamos la línea con un punto y coma si no deseamos una imagen de presentación.
!define REGKEYS "" ; Es aquí que nuestra clave de registro debe ser añadida. Si tenemos varias claves a insertar las separamos con el símbolo || ((AltGr + 6) 2 veces), comentamos la línea con un punto y coma si no hay una clave de registro.
!define SETTINGSFILES "" ; Esta línea es para los eventuales ficheros de configuración (.ini) con sus rutas relativas. Si hay varios las separamos con el símbolo || ((AltGr + 6) 2 veces), comentamos la línea si no hay archivos .ini.

!define SETTINGSDIRS "" ;. Aquí insertamos las rutas hacia las eventuales carpetas que serán añadidas, durante la ejecución de la aplicación. Si hay varios las separamos con el símbolo || ((AltGr + 6) 2 veces), comentamos la línea si no hay carpetas a añadir.
!define INI "${PNAME}.ini" ; Comentamos esta línea con un punto y coma.

La de abajo es la captura de pantalla de mi instalador para HeidiSQL

III) Compilación


Lo guardamos, nuestro instalador está listo para ser compilado. Antes es buena idea añadir el icono y la imagen de inicio.
Para permitir a NSIS compilar este script debemos asegurarnos que tenemos el plugin Registry.nsh necesario para este template.
Abrimos NSIS:


Hacemos clic en Compile NSI scripts y nos aparece esta ventana:


Arrastramos y soltamos en la ventana del compilador el fichero template y la compilación se efectúa indicando paso a paso los parámetros añadidos al futuro EXE.
Al final de la compilación debemos verificar que no ha habido problemas, si la compilación fracasa, es aquí donde sabremos por qué.
Solo nos queda crear la estructura de la aplicación portable.
En la raíz del directorio pondremos el instalador que acabamos de crear. Nos hace falta crear dos sub-carpetas App y Data. En App pondremos la carpeta que contiene los archivos de la aplicación que se va a postabilizar.
¿Qué diferencia a este template de un script AutoIt? Al inicio del instalador, guarda las eventuales claves de registro, carpetas y archivos ini que le hemos indicado para conservar una eventual instalación existente del programa que deseamos ejecutar. Luego, ejecutará nuestro programa. Al salir de la aplicación, guardará los eventuales cambios que hemos generado al utilizar el programa. Luego los borrará del PC y restaurará la configuración antigua y los archivos.

Otros enlaces



Fuente: http://pon.fr/creer-un-lanceur-avec-nsis/

PD: El artículo original fue escrito por gobiel, contribuidor de CommentCaMarche
Mejores respuestas para « Hacer portable una aplicación con NSIS » en :
Hacer portable una aplicación con Reg Rapper Ver I) Introducción II) Guardar los parámetros III) Hacer portable la aplicación (creación de los parámetros) Otros enlaces I) Introducción En este tutorial veremos paso a paso cómo crear un instalador para una aplicación que normalmente no...
Hacer portable una aplicación con ThinApp Ver I) Introducción II) Hacer portable la aplicación I) Compilación Otros enlaces I) Introducción En este tutorial aprenderemos cómo hacer portable una aplicación utilizando VMware ThinApp. A modo de ejemplo haremos portable TuneUp...
Hacer portable una aplicación con AutoIt VerIntroducción II) Etapa previa Hacer portable la aplicación (creación del script) Otros enlaces de interés Introducción Este tutorial te permitirá seguir paso a paso la creación de un instalador para una aplicación que normalmente no es...
.exe no es una aplicación win32 valida VerSi cuando ejecutas un archivo ejecutable, Windows muestra un mensaje del tipo: Esta aplicación no es una aplicación Win32 valida Existen varias formas de solucionar el problema que dependen del origen del problema: Archivo...
Descargar Portrait Professional VerPortrait Professional es una aplicacion desarrollada para que puedas hacer retoques en tus fotografias facilmente. Basicamente el programa te brinda todas las herramientas para la edicion de fotografica cuidando todos los detalles. Muchas vece...
Integración de aplicaciones empresariales (EAI) VerIntroducción al concepto de EAI El propósito de la EAI (Enterprise Application Integration, traducido al español como integración de aplicaciones empresariales) es lograr la interoperabilidad y organización del flujo de información entre aplicaciones...
Proveedor de servicios de aplicación (ASP) VerConcepto de servicios de aplicación El término ASP (Proveedor de servicios de aplicación, ASP, acrónimo en inglés de Application Service Provider) se refiere al suministro, por parte de un proveedor, de una aplicación que puede usarse a través de...