Descripción general de Windows
Notas específicas de Windows sobre la creación y el uso de paquetes de Velopack.
Para Windows, Velopack crea e instala una estructura de carpetas similar a la siguiente:
%LocalAppData%
└── {packId}
├── current
│ ├── YourFile.dll
│ ├── sq.version
│ └── YourApp.exe
├── Update.exe
└── YourApp.exe (execution stub)
El archivo YourApp.exe en el directorio raíz es un pequeño stub de ejecución que lanza el ejecutable real dentro de current. Es creado tanto por Setup.exe como por el instalador .msi, de modo que los accesos directos y lanzadores pueden apuntar a una ruta estable que sobrevive a las actualizaciones.
Empaquetado
No hay requisitos especiales para empaquetar un programa para Windows, aunque es posible que desee personalizar el instalador
usando --packTitle, --splashImage, --icon, etc. Consulte la ayuda de la línea de comandos para obtener una lista completa de opciones.
También se recomienda ampliamente (aunque no es obligatorio) que firme el código antes de distribuir a sus usuarios. Si no lo hace, es posible que su aplicación sea marcada como virus.
Actualización
Durante las actualizaciones, el directorio current completo será reemplazado, por lo que si necesita almacenar configuraciones, registros, informes de fallos, etc.,
consulte Preservar archivos.
En Windows, si alguno de los archivos dentro de current está en uso, la carpeta no puede moverse/renombrarse/eliminarse, etc.
Hay muchas cosas que podrían bloquear esta carpeta. Por ejemplo:
- Un proceso ejecutándose dentro de
current - Un proceso ejecutándose fuera de
currentque ha abierto un archivo dentro decurrentpara lectura. - Antivirus / Windows Defender, etc.
- Un proceso cuyo CWD (directorio de trabajo actual) se encuentra dentro de esa carpeta (por ejemplo, un proceso
cmd.exe).
Si la carpeta no puede renombrarse durante el proceso de actualización, el actualizador de Velopack intentará finalizar automáticamente los procesos que se ejecutan dentro de current.
Si la carpeta sigue bloqueada y no puede renombrarse, el actualizador buscará otros procesos en el sistema que puedan estar bloqueándola;
si se encuentran, abrirá un diálogo al usuario ofreciendo la opción de finalizar dichos procesos o cancelar la actualización. Si el proceso que bloquea la carpeta no pudo identificarse
(por ejemplo, si el proceso bloqueante se ejecuta como Administrador), se mostrará un mensaje de error al usuario y se lanzará la versión anterior de la
aplicación.
El instalador Setup.exe es por usuario e instala en %LocalAppData%\{packId}, por lo que no requiere elevación ni utiliza directorios privilegiados. Si necesita una instalación por equipo en Program Files, use el instalador MSI con --msi --instLocation PerMachine, que instala en Program Files\{publisher}\{packTitle} (registro HKLM, requiere elevación).
Instalación
El instalador producido por Velopack es un instalador de un solo clic, que mostrará la imagen de presentación de su elección (PNG, JPG o GIF animado), o si no proporciona una imagen, será una simple barra de progreso.
De forma predeterminada, el instalador se instalará en %LocalAppData%\{packId}, pero esto puede cambiarse en tiempo de ejecución con el argumento Setup.exe --installto {dir}.
Antes de iniciar la instalación, el instalador verificará que el tiempo de ejecución de la aplicación sea compatible con el sistema operativo actual, y también comprobará si faltan dependencias de arranque.
Además, durante la instalación, el instalador ejecutará los hooks de la aplicación y lanzará la aplicación por primera vez
una vez que la instalación haya completado. Si desea evitar que la aplicación se lance al finalizar la instalación,
puede hacerlo con el argumento Setup.exe --silent.