Descripción general de la distribución
Las aplicaciones de Velopack se pueden distribuir fácilmente con Velopack Flow o cargándolas manualmente en algún lugar desde el que se puedan descargar por HTTP. Esto significa que puedes alojarlas en un sitio IIS o nodejs, en alojamiento de archivos compartido como AWS S3, Azure Storage, BackBlaze B2, o incluso de forma gratuita en versiones de GitHub/GitLab si tu proyecto es de código abierto.
Los pasos generales para crear e implementar una versión de Velopack son:
- Descarga la última versión publicada (p. ej., 1.0.0).
- Ejecuta
vpk packpara crear tu nueva versión (p. ej., 1.0.1). - Sube los activos recién creados de la versión 1.0.1.
- Actualiza el
releases.{channel}.jsonremoto para reflejar los activos recién subidos.
Véase también: los Comandos de implementación pueden facilitar mucho este proceso.
Lista de activos producidos
Después de empaquetar una versión con Velopack, deberías tener algo similar a lo siguiente en tu directorio de salida:
Releases
├── YourAppId-1.0.1-full.nupkg
├── YourAppId-1.0.1-delta.nupkg
├── YourAppId-Setup.exe
├── YourAppId-Portable.zip
├── releases.{channel}.json
├── assets.{channel}.json
└── RELEASES
nupkg completos y delta
Estos son los paquetes de actualización que las aplicaciones instaladas usan para buscar/instalar la última versión. Los paquetes completos contienen una réplica completa de tus archivos de entrada, además de algunos archivos que Velopack añade. Un paquete delta es una diferencia respecto al paquete completo creado anteriormente. Necesitas tener la versión anterior (p. ej., 1.0.0 en el ejemplo anterior) descargada y en el directorio de salida para que se cree un delta (en este caso, 1.0.0->1.0.1). Hay comandos de implementación útiles que pueden descargar la última versión automáticamente, para que los deltas se generen de forma automática.
Debes distribuir estos paquetes en la misma carpeta que el archivo releases.{channel}.json para que las actualizaciones funcionen.
Instalador y portátil
Esto es lo que el usuario debe descargar y ejecutar para instalar tu aplicación. En MacOS, obtendrás un .pkg en lugar de un -Setup.exe. En Linux, no se produce ningún instalador, solo un .AppImage portátil. La razón de esto es que los .AppImage son completamente portátiles para cualquier distribución de Linux relativamente reciente.
Feed de versiones (releases.{channel}.json)
Este archivo debe distribuirse en la misma carpeta donde se implementan los archivos nupkg. Contiene una lista de todas las versiones disponibles.
Cuando proporcionas una URL HTTP a UpdateManager, este buscará este archivo. Por ejemplo, si usas new UpdateManager("https://the.place/you-host/updates"), entonces UpdateManager solicitará https://the.place/you-host/updates/releases.{channel}.json. El canal que utiliza UpdateManager en la solicitud es automático; puedes leer más aquí sobre los canales.
Por ejemplo, si empaquetaste 1.0.0 e inmediatamente después 1.0.1, el contenido de este archivo podría verse así:
{
"Assets": [
{
"PackageId": "YourAppId",
"Version": "1.0.1",
"Type": "Full",
"FileName": "YourAppId-1.0.1-full.nupkg",
"SHA1": "537EC0F4E1C4263A230353FAB4150216E5AF3724",
"Size": 1588612
},
{
"PackageId": "YourAppId",
"Version": "1.0.1",
"Type": "Delta",
"FileName": "YourAppId-1.0.1-delta.nupkg",
"SHA1": "9615D266DDBCADF3B9CD82BABF9DA571A0EE2B83",
"Size": 3606
},
{
"PackageId": "YourAppId",
"Version": "1.0.0",
"Type": "Full",
"FileName": "YourAppId-1.0.0-full.nupkg",
"SHA1": "69122BABCEEEF9F653BFE59D87DDAEF363F9476F",
"Size": 1588613
}
]
}
El archivo de versiones siempre debe reflejar los archivos que están realmente disponibles en la carpeta remota que contiene el archivo de versiones. Por lo tanto, si eliminas una versión nupkg del servidor remoto, también debes eliminarla de tu archivo de versiones remoto. Si estás implementando archivos locales recién creados en un servidor remoto que ya contiene algunas versiones, debes copiar los activos de tu archivo local al archivo de versiones remoto.
Este archivo es la única forma en que UpdateManager puede descubrir versiones; si no lo actualizas correctamente, es posible que tus usuarios no reciban actualizaciones.
Es tedioso actualizar este archivo manualmente, por lo que la CLI de Velopack proporciona comandos de implementación que pueden implementar activos y actualizar este archivo automáticamente, además de aplicar políticas de retención sobre el número de versiones a conservar. [Leer más]
Feed de versiones heredado (RELEASES)
Este formato de versiones fue utilizado por Clowd.Squirrel y Squirrel.Windows, y Velopack aún lo produce para permitirte migrar una aplicación que use uno de esos frameworks a Velopack. Si no tienes usuarios heredados que necesiten migrar a Velopack, puedes ignorar este archivo con seguridad.
Archivo de activos
Este archivo contiene una lista de activos producidos por el último comando pack. Los comandos de implementación de Velopack lo usan para saber qué archivos deben subirse. Puede ignorarse o eliminarse si no tienes intención de usar estos comandos para implementar versiones y actualizar automáticamente tu feed de versiones.