Saltar al contenido

Crea un instalador NSIS en línea sin escribir un script

Qué es NSIS, cómo es un script .nsi mínimo y cómo obtener un Setup.exe NSIS estándar con el asistente Modern UI, accesos directos y un desinstalador a partir de un formulario en lugar de un script.

Actualizado el 31 de octubre de 2026 · 3 min de lectura

NSIS, el Nullsoft Scriptable Install System, lleva más de veinte años siendo el discreto caballo de batalla de los instaladores de Windows. VLC, 7-Zip, Audacity e innumerables aplicaciones Electron se distribuyen con él. Es gratuito, produce instaladores pequeños y hace exactamente lo que dice su script. El script es también lo que frena a mucha gente: hay que aprender un lenguaje de macros para obtener un asistente que, de todos modos, la mayoría de las aplicaciones quiere con la misma forma. Esta guía muestra qué implica el script y cómo obtener el mismo instalador sin escribirlo.

Qué hace NSIS

makensis compila un script de texto (.nsi) en un Setup.exe autocontenido. El script declara las páginas del asistente, los archivos que se instalan, los accesos directos y las entradas del registro que se crean, y una sección de desinstalación que lo revierte todo. Con la Modern UI (MUI2.nsh) obtienes las conocidas páginas de bienvenida, licencia, carpeta, progreso y finalización, traducidas a decenas de idiomas.

La salida es compacta: la compresión LZMA sólida suele superar a un zip con los mismos archivos. Los instaladores admiten el modo silencioso (/S) y una carpeta de instalación personalizada (/D=) sin trabajo adicional.

Cómo es el script

Un script mínimo y realista para una carpeta de aplicación ronda las ochenta líneas. El esqueleto:

!include MUI2.nsh
Name "My App"
OutFile "Setup.exe"
InstallDir "$PROGRAMFILES64\My App"
RequestExecutionLevel admin

!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_LICENSE "license.txt"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"

Section "Install"
  SetOutPath "$INSTDIR"
  File /r "app\*"
  WriteUninstaller "$INSTDIR\uninstall.exe"
  CreateShortcut "$SMPROGRAMS\My App.lnk" "$INSTDIR\MyApp.exe"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "DisplayName" "My App"
  WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App" "UninstallString" "$INSTDIR\uninstall.exe"
SectionEnd

Section "Uninstall"
  Delete "$INSTDIR\MyApp.exe"
  RMDir /r "$INSTDIR"
  Delete "$SMPROGRAMS\My App.lnk"
  DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\My App"
SectionEnd

El script real crece a partir de ahí: información de versión para las propiedades del archivo, un acceso directo en el escritorio, vistas del registro de 64 bits, instalaciones por usuario bajo $LOCALAPPDATA, un diálogo de selección de idioma, «ejecutar después de instalar», un tamaño estimado para la Configuración de Windows y un desinstalador que elimina solo los archivos que instaló en lugar de toda la carpeta (los usuarios sí guardan sus propios archivos junto a las aplicaciones). Cada cosa son unas pocas líneas, y cada una es un sitio donde equivocarse en un detalle.

Obtener el mismo instalador desde un formulario

ExeTup es un generador de instaladores NSIS: crea un script como el anterior a partir de tus respuestas, lo compila con makensis en la nube y te entrega el Setup.exe. Lo que rellenas:

  • Archivos: un zip de la carpeta de la aplicación, o un único .exe, más «otros archivos» opcionales para instalar junto a ella.
  • Detalles: nombre, versión, editor, sitio web, texto de la licencia.
  • Opciones: todos los usuarios o el usuario actual, 64 o 32 bits, accesos directos en el menú Inicio y el escritorio, ejecutar después de instalar, ejecutar al iniciar el sistema.
  • Idiomas: cualquiera de quince, con el diálogo de idioma de NSIS cuando eliges más de uno.
  • Icono: un .ico para el instalador y los accesos directos.

El resultado es un instalador NSIS estándar con la Modern UI, compresión LZMA sólida, el desinstalador registrado en la Configuración de Windows, información de versión en las propiedades del archivo e instalación silenciosa con /S. Cada valor que escribes se escapa antes de llegar al script, lo que importa porque los scripts NSIS pueden ejecutar comandos en tiempo de compilación.

Cuándo escribir el script tú mismo

Escribe NSIS a mano cuando necesites páginas personalizadas, plugins, secciones condicionales, instalación de servicios o integración con una canalización de CI que ya compila en Windows. La documentación de NSIS y los ejemplos que la acompañan son buenos. Para una aplicación que necesita el asistente estándar, accesos directos y un desinstalador, generar el script es más rápido y más difícil de hacer mal.

Preguntas frecuentes

¿El resultado es un instalador NSIS real?

Sí. ExeTup genera un script NSIS y lo compila con el makensis oficial. El Setup.exe se comporta como cualquier instalador NSIS, incluidos los modificadores /S y /D=.

¿Puedo descargar el script .nsi generado?

El script se genera en el momento de la compilación a partir de tu configuración. Lo que descargas es el instalador en sí; sus opciones se ven en la vista previa antes de compilar.

¿NSIS funciona en Mac o Linux?

makensis compila en las tres plataformas, y Homebrew y apt lo empaquetan. Pero el script sigues escribiéndolo tú. ExeTup solo necesita un navegador; consulta cómo crear un instalador de Windows en un Mac.

¿Qué idiomas se admiten?

Inglés, chino simplificado, hindi, español, francés, árabe, portugués de Brasil, ruso, indonesio, alemán, japonés, turco, coreano, vietnamita e italiano, usando las propias traducciones de NSIS.

Guías relacionadas