EX Installer

Instalador simple y bonito.


Contenido


1. Bienvenid@

    EX Installer fue creado por CRZ Labs, apunta a ser un instalador para cualquier persona que quiera distribuir su software.
    La idea comienza con el siguiente problema: "Hice un programa, y quiero instalarlo en otras computadoras, pero ojala no ser dificil de construir.".
    En internet hay muchos sistemas de deploy que requieren un conocimiento previo. EX Installer fue creado para que cualquier persona, siempre y cuando siguiendo las instrucciones de esta documentacion, pueda crear su propio sistema de deploy, facil, simple y bonito.



2. Sobre el programa

    EX Installer cuenta con varias funciones que vienen en lo tipico de un sistema de deploy.

    • Instalacion: Al ejecutar un Instalador EX Installer pre-configurado, la instalacion es totalmente automatica, no necesita ninguna asistencia de parte del usuario.
    • Post-Instalacion: Cuando el programa pre-configurado esta instalado, al iniciar nuevamente un EX Installer pre-configurado, este vera si el programa esta instalado, si esta instalado, iniciara el modo Asistente, el cual tiene las funciones:
      • Reinstalar: Al clicar en Reinstalar, EX Installer reinstalara el programa automaticamente. Reemplazando todo lo que se encuentre en la carpeta de instalacion.
      • Desinstalar: Al clicar en Desinstalar, EX Installer desinstalara el software pre-configurado de la maquina
    • Inteligencia: EX Installer tiene algunas lineas de codigo robadas de WorInstaller (un software de instalacion/deploy de Worcome Studios). Por lo que cuenta con algunas cosas obvias y avanzadas de un instalador.



3. Confiabilidad



4. Como usarlo

      Para un mejor entendimiento, te recomendamos ver el siguiente diagrama

      EX Installer contiene dos binarios.
      • EXInstaller.exe: Ejecutable injectable con el instructivo del programa a instalar.
      • EXInstallerIDE.exe: Ejecutable para injectar el instructivo en el ejecutable injectable.
      Injectando:
      • I) Crear el archivo de servicio:
        • El archivo de servicio es un archivo de texto plano con extencion .ini el cual contendra algunos valores para poder realizar la instalacion.

          Entre estos valores, se encuentran datos muy importantes, como la version de tu ensamblado, donde se instalara y algunos links de ayuda para el usuario.
          Tambien se encuentran opciones, como por ejemplo, si tu programa necesita iniciarse como administrador o iniciarse con windows. El archivo de servicio tiene un aspecto asi:
          #EX Installer Instructive File
          [Package]
          Status=True
          AssemblyName=CloudDesktopManager
          AssemblyVersion=1.3.0.0
          Description=Sincronizador de directorios
          Company=Urfenox
          WebUrl=https://github.com/Urfenox/CloudDesktopManager
          PackageName=CloudDesktopManager.exe
          IsComponent=False
          InstallerVersion=1.3.0.0
          BitsArch=32
          [Installer]
          Status=True
          EnableDowngrade=True
          NeedRestart=False
          NeedStartUp=False
          NeedElevateAccess=False
          NeedToStart=True;NULL
          InstallFolder=C:\Users\%username%\AppData\Local\CRZ_Labs\CloudDesktopManager
          EULA=NULL
          Installer=NULL
          AfterInstall=NULL
          AfterUninstall=NULL
          InstallPackage=https://www.dropbox.com/s/iwopzhv5aohc93i/CDMv1300.zip?dl=1
          [HelpLinks]
          TelemetryPost=http://crz-labs.rf.gd/EXInstaller/Telemetry/postTelemetry.php
          ChangeLogLink=https://github.com/Urfenox/CloudDesktopManager
          UseGuide=https://github.com/Urfenox/CloudDesktopManager
          AppAbout=https://github.com/Urfenox/CloudDesktopManager
          Contact=https://github.com/Urfenox/CloudDesktopManager
          [Versions]
          1.3.0.0=https://www.dropbox.com/s/iwopzhv5aohc93i/CDMv1300.zip?dl=1
          1.2.0.0=https://www.dropbox.com/s/9h8sbsj70kloirb/CDMv1200.zip?dl=1
          1.1.0.0=https://www.dropbox.com/s/iwolswkwnilirbc/CDMv1100.zip?dl=1
          1.0.1.0=https://www.dropbox.com/s/0shzvh680obbm78/CDMv1010.zip?dl=1
          1.0.0.0=https://www.dropbox.com/s/jd4po0q24bqr4i5/CDMv1000.zip?dl=1
          											
          Este archivo configura EXInstaller para descargar e instalar CloudDesktopManager.

          Comenzemos a deglosar estos campos.
        • 0) #EX Installer Instructive File: Este es un comentario, puedes modificarlo como quieras, pero, es obligatorio que este comentario este antes de todo.
        • [Package]: Este campo indica el inicio de los campos para dicho titulo. No lo modifiques.
        • Status=(True/False): Campo booleano, True o False. Sirve para ver si tu programa esta disponible para que los usuarios lo descargen e instalen.
          • True: El instalador dejara que instalen o asistan este software.
          • False: El instalador no dejara que instalen o asistan este software.
        • AssemblyName=(nombre de tu ensamblado): Aqui debes indicar el nombre de tu programa.
        • AssemblyVersion=(version de tu programa): Indica la version del programa.
          • Debes poner la version o compilado de tu programa.
          • Si actualizas tu programa e instalador, este campo tambien deberas cambiarlo
        • Description=(descripcion breve): Un texto breve de una linea que deje en claro que hace tu programa.
        • Company=(tu nombre o la de tu organizacion): Es el nombre del creador o entidad creadora del programa.
        • WebUrl=(link a una pagina web propia o la de la organizcion): Indica la pagina web tuya (blog, portafolio, etc) o la de tu entidad.
        • PackageName=(nombre del ejecutable -con su extencion- principal): El ejecutable principal.
        • IsComponent=(True/False): Campo booleano, True o False. Sirve para simplemente reemplazar un componte que utiliza tu programa.
          • Es similar a una instalacion, solo que es un componente que no sera registrado, tampoco se crearan accesos directos.
          • Es perfecto para complementos .dll, imagenes o recursos en general.
        • InstallerVersion=(version del instalador): Si el instalador es nuevo o no. Realmente este campo basta con dejarlo en 1.0.0.0 o con la version actual de EX Installer.
        • BitsArch=(32/64)Campo entero (solo permite 32 o 64): Indica para que aquitectura esta diseñado tu programa.
          • OJO: Si el PC del usuario/cliente es de 32bits, y el programa es de 64bits. EX Installer NO instalara el programa.
          • EX Instaler esta construido para 32bits y es compatible con equipos de 64bits. El programa pre-configurado puede ser de 64bits.
          • EX Installer verificara la arquitectura del pc usuario/cliente.
        • [Installer]: Este campo indica el inicio de los campos para dicho titulo. No lo modifiques.
        • Status=True(True/False): Campo booleano, True o False. Este campo no es usado por EX Installer.
        • EnableDowngrade=True(True/False): Campo booleano, True o False. Indica (True) si un instalador anterior podra descargar e instalar la version que se le indico originalmente. O (False) si debera descargar e instalar si o si la version mas reciente.
          • Si se indica True, entonces deberas crear una seccion en el archivo instructivo con una seccion llamada [Versions] en la cual deberan estar listadas las versiones anteriores y sus links de descarga correspondientes.
          • Ve el ejemplo del Archivo Instructivo y la Seccion [Versions]
          • El orden de como se indican no importa, no importan mientras esten todas las que fueron publicadas con EXInstaller 1.3.0.0
        • NeedRestart=(True/False): Campo booleano, True o False. Indica si el programa pide un reinicio del equipo.
        • NeedStartUp=(True/False)(Opcional ;[parametro]): Campo booleano, True o False. Indica si el programa debe ejecutarse al iniciar Windows.
          • Compatible con parametros. Si el programa necesita iniciarse con parametros al iniciar Windows. (Ej.: pon True;/background (Donde /background indica un parametro de tu ejecutable para iniciar en segundo plano))
          • Si no pones parametros, pero debe iniciar con Windows, pon True;NULL (Al iniciar Windows, el programa simplemente se iniciara sin parametros)
          • Si no necesitas que se inicie con Windows, pon False
        • NeedElevateAccess=(True/False): Campo booleano, True o False. Indica si el programa necesita ejecutarse siempre con permisos de Administrador.
        • NeedToStart=(True/False)(Opcional ;[parametro]): Campo booleano, True o False. Indica si el programa se ejecutara automaticamente una vez finalizada la instalacion.
          • Compatible con parametros. Si el programa necesita inicializarse una primera vez basta con poner: Ej.: True;/FirstStart (Donde /FirstStart indica un parametro de tu programa para inicializar el programa)
          • Si no pones parametros, pero necesita iniciarse, pon True;NULL (EX Installer iniciara el programa sin ponerle parametros)
          • Si no necesitas que se inicie pon False
        • InstallFolder=(directorio donde se instalara): Indica el directorio en donde tu programa recibira los archivos de instalacion.
          • Si quieres que se instale en ProgramFiles y respetando la arquitectura 32 op 64 bits. Debes poner %programfiles%\Compañia\TuPrograma
          • Si quires que se instale en un directorio dentro del usuario especifico. Debes poner C:\Users\%username%\AppData\Local\Compañia\TuPrograma
          • Los campos %programfiles% y %username% seran automaticamente reemplazados por su equivalencia.
            • %programfiles% se reemplazara por, dependiendo de la arquitectura:
              • Si el computador es de 32 bits y el programa es de 32 bits.
                • "C:\Program Files"
              • Si el computador es de 32 bits y el programa es de 64 bits.
                • No se realizara la instalacion.
              • Si el computador es de 64 bits y el programa es de 32 bits.
                • "C:\Program Files (x86)"
              • Si el computador es de 64 bits y el programa es de 64 bits.
                • "C:\Program Files"
              %username% se reemplazara por el nombre de usuario actual. (Environment.UserName en .NET)
        • EULA=(True/False)(Opcional ;[link eula]): Campo booleano, True o False. Indica el EULA del programa.
          • False para mostrar un EULA pre-cargado.
          • True para indicar uno que se encuentra siguiendo el link
            • True;Link_del_eula_remoto
        • Installer=NULL: Indica el link de descarga del instalador actual. El link de donde descarga el usuario/cliente el instalador que estas configurando. Si, es extraño. EX Installer no utiliza este campo.
        • AfterInstall=NULL: Indica un script o accion al finalizar la instalacion.
          • NULL: No hace nada.
            Si se pasa un archivo, este deberia ser un script que se carge en memoria. Como python o un batch.
              Para este caso, el script Install.py dirigira al usuario a una pagina web y se registrara usando un post a una base de datos.
              El parametro /reg sirve como llave para que el usuario no ejecute el script por accidente.
              install.py;/reg: Iniciara el script python y pasara el parametro /reg.
              install.py;NULL: Iniciara el script python.
            Tambien puedes hacer que un navegador inicie.
              firefox.exe;http://crz-labs.rf.gd/
              o simplemente pasando la URL
              http://crz-labs.rf.gd/;NULL

        • AfterUninstall=NULL: Indica un script o accion al finalizar la desinstalacion.
          • Mismo funcionamiento que AfterUninstall. Exelente para eliminar archivos que el programa haya creado, archivos que EXInstaller no eliminara si no estan en la carpeta de instalacion (InstallFolder).
        • InstallPackage=(link de descarga del .zip con las cosas a instalar): Indica el link de descarga DIRECTO del .zip con los archivos a copiar e instalar en la carpeta "InstallFolder"
        • [HelpLinks]: Este campo indica el inicio de los campos para dicho titulo. No lo modifiques.
        • TelemetryPost=(link a el documento de cambios): Indica el link a la pagina web donde estan publicados los cambios del programa a traves de las versiones. Conocido como "Notas de la version, WhatsNew"
          • EXInstaller mantiene un mensajes de sistema para poder identificar errores y notificar al autor de instalaciones o desinstalaciones.
            Debes tener un servidor con PHP. Luego debes descargar este archivo php el cual deberas subir a tu servidor.
            Luego deberas indicar la ruta HTTP de ese archivo y pegar esa ruta en este campo.
            Los archivos .tlm se generaran donde esta el archivo.
        • ChangeLogLink=(link a el documento de cambios): Indica el link a la pagina web donde estan publicados los cambios del programa a traves de las versiones. Conocido como "Notas de la version, WhatsNew"
        • UseGuide=(link de ayuda de uso del programa): Indica el link para obtener ayuda de como usar el programa. Ejemplo: Este documento que estas leyendo.
        • AppAbout=(link de informacion sobre el programa): Indica el link para obtener informacion del programa.
        • Contact=(link para contactarte a ti o a tu organizcion): Indica el link para poder poner en contacto al usuario/cliente contigo o tu entidad.
        • [Version]: Este campo indica el inicio de los campos para dicho titulo. No lo modifiques.
          • Si el campo 'EnableDowngrade' es igual 'True', se debera agregar esta seccion.
          • Si el campo 'EnableDowngrade' es igual 'False', no es necesaria esta seccion.
          • Esta funcion NO funciona con versiones anteriores. Solo para versiones de EXInstaller 1.3.0.0 en adelante.
        II) Injectar al ejecutable
          Debes iniciar EXInstallerIDE.exe para poder injectar en el ejecutable EXInstaller.exe y crear el instalador.
        • 1) Al iniciar EXInstallerIDE.exe, se mostrara una ventana con tres (3) campos
          • Ensamblado: Indica el AssemblyName indicado en el archivo de servicio.
          • Version: Indica el AssemblyVersion indicado en el archivo de servicio.
          • URL: Indica el link de descarga directo del archivo de servicio.
            • Debes subir el archivo de servicio a algun servicio de almacenamiento en linea. Puede ser FTP, DropBox, OneDrive o, si estas loco, usar GoogleDrive.
            • Para hacer que un link sea de descarga directa:
        • 2) Clic en el boton Injectar, aparecera un dialogo en que te pedira selecciones el ejecutable EXInstaller.exe
        • 3) Luego de ello, un mensaje deberia indicarte que la injecion fue correcta. Un nuevo ejecutable se creara en donde se encuentre EXInstallerIDE.exe con el nombre "{AssemblyName} Installer.exe"
        • 4) Listo!. Ese es el ejecutable que puedes distribuir para que el usuario/cliente lo ejecute y asi instale tu programa.



5. Contacto

    Si tienes preguntas, dudas, problemas, reclamos o lo que sea, contactanos!




Sobre privacidad
    Ni EXInstaller, EXInstallerIDE ni el instalador que hayas creado recopilan o envia informacion.


Ultima modificacion: 17/01/2022
Este documento puede no contener informacion actualizada sobre las nuevas funciones y esta sujeto a cambios sin previo aviso.