EX Installer
Instalador simple y bonito.
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.
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.
- 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.
- Si el computador es de 64 bits y el programa es de 64 bits.
%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.
|