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