Saltar la navegación

6.2.2.-. Creación de scripts mediante NSIS.

Para crear un instalador con NSIS, debemos escribir un script NSIS. Un script NSIS es un fichero de texto plano con una sintaxis especial. Son scripts en los que cada línea es tratada como un comando. Dentro de la instalación de la aplicación, nos encontramos con una gran cantidad de scripts desarrollados como ejemplo. En función de nuestras necesidades, podemos editarlos y combinarlos.

Lenguaje de Script

La extensión por defecto de los scripts es .nsi. También existen ficheros header (al estilo de los .h de C/C++) que tienen la extensión .nsh.

Un script NSIS puede contener atributos del instalador, páginas, secciones y funciones.

Atributos del Instalador

Los atributos del instalador determinan el comportamiento y el aspecto del instalador. Estos atributos determinan los diferentes mensajes que se irán mostrando durante el proceso de instalación.  En cada proceso de instalación, el instalador mostrará una ventana o una página.

Por ejemplo, Name es el atributo correspondiente al nombre de nuestra aplicación, InstallDir será el directorio elegido para instalar la aplicación etc.

Páginas:

Un instalador puede mostrar diferentes páginas al usuario, por ejemplo, la página bienvenida, la de aceptación de licencia, la de selección del directorio de instalación, etc:

  • Page license
  • Page components
  • Page directory
  • Page instfiles
  • UninstPage uninstConfirm
  • UninstPage instfiles

En caso de usar el UI moderno al incluir:  !include "MUI.nsh" usaremos sus macros:

Mostramos la página de bienvenida: !insertmacro MUI_PAGE_WELCOME

  • Página donde mostramos el contrato de licencia: !insertmacro MUI_PAGE_LICENSE "licencia.txt"
  • Página donde se muestran las distintas secciones definidas: !insertmacro MUI_PAGE_COMPONENTS
  • Página donde se selecciona el directorio donde instalar nuestra aplicación: !insertmacro MUI_PAGE_DIRECTORY
  • Página de instalación de ficheros: !insertmacro MUI_PAGE_INSTFILES
  • Página final: !insertmacro MUI_PAGE_FINISH

Secciones:

 En un instalador pueden hacerse categorías de instalación. Y así separar la instalación en varios componentes, dando a elegir al usuario cuales instalar y cuáles no.

Section "My Program"

  SetOutPath $INSTDIR

  File "My Program.exe"

  File "Readme.txt"

SectionEnd

Dentro de cada sección usamos instrucciones que son ejecutadas en tiempo de ejecución. Estas instrucciones, leen y escriben en el registro, crean, borran y copian ficheros y directorios, crean accesos directos etc.

Los desinstaladores también pueden tener varias secciones teniendo como prefijo "un.":

Section "Installer Section"

SectionEnd

 

Section "un.Uninstaller Section"

SectionEnd

Funciones

Las Funciones contienen código semejante a las secciones, pero se diferencian de éstas en el modo en que se llaman. Hay dos tipos de funciones, las definidas por el usuario, que se llaman con la instrucción Call y las que se activan cuando ocurren determinados eventos en la instalación:

Function .onInit

  MessageBox MB_YESNO "Esto instalará mi programa ¿Quiere continuar?" IDYES gogogo

    Abort

  gogogo:

FunctionEnd

Abort es una función especial que hace que el instalador termine inmediatamente.

Variables:

En este lenguaje se declaran las variables mediante Var :

Var VARIABLE ;Declaramos la variable

Section variable 

  StrCpy $VARIABLE "valor" ;Ahora la variable VARIABLE vale  o contiene "valor"

SectionEnd 

Una vez que hemos implementado nuestro script de instalación, la herramienta NSIS lo compila, creando un ejecutable que será nuestro instalador.

Estos son a grandes rasgos los componentes del lenguaje de script de NSIS, con el paquete se incluye un completo sistema de ayuda acerca del lenguaje, así como diferentes ejemplos.