Saltar al contenido principal

Descripción general del empaquetado

Applies to
Windows
MacOS
Linux

El empaquetado de un lanzamiento se realiza con el comando pack en Velopack. Independientemente de tu sistema operativo, los argumentos requeridos comunes son prácticamente los mismos.

Creando tu primer lanzamiento

Primero debes compilar tu aplicación con cualquier cadena de herramientas que uses normalmente (p. ej., dotnet publish, msbuild.exe, etc.). En adelante, esto se denominará {build_dir}.

Argumentos requeridos

  • --packId {id} El identificador único de tu aplicación. Debe ser suficientemente único para evitar colisiones con las aplicaciones de otros autores.
  • --packVersion {version} La versión actual que estás lanzando, en formato semver2 (p. ej., 1.0.0-build.23+metadata).
  • --packDir {build_dir} La carpeta que contiene tu aplicación compilada.
  • --mainExe {exeName} El ejecutable principal que se iniciará tras la instalación, y el binario que gestionará los Hooks de Velopack. Este es principalmente un concepto de Windows — en macOS el punto de entrada proviene del Info.plist del paquete .app, y en Linux del archivo .desktop generado.
tip

Velopack no admite versiones de 4 partes (p. ej., 1.0.0.0), ya que no sería práctico admitir ambos formatos simultáneamente y semver2 ofrece mucha más flexibilidad.

Un ejemplo completo:

dotnet publish -c Release -r win-x64 -o publish
vpk pack --packId MyAppId --packVersion 1.0.0 --packDir publish --mainExe MyApp.exe

Argumentos opcionales recomendados

Hay muchos argumentos opcionales; la mejor manera de ver qué funciones están disponibles para tu sistema operativo es ejecutar vpk pack -h. Para mencionar algunos:

  • --packTitle {name} El nombre descriptivo de tu aplicación, mostrado a los usuarios en diálogos, accesos directos, etc.
  • --outputDir {path} La ubicación donde Velopack debe crear los lanzamientos finales (por defecto .\Releases)
  • --icon {path} El ícono utilizado para empaquetar tu aplicación.
  • --exclude {regex} Una expresión regular de archivos a excluir del paquete, además de los valores predeterminados incorporados. Por defecto se excluyen los archivos .pdb (el valor predeterminado es .*\.pdb), por lo que si deseas incluir archivos .pdb debes sobreescribir esto.
tip

Cualquier opción de vpk también puede proporcionarse mediante una variable de entorno llamada VPK_<OPTION> (el nombre de la opción en mayúsculas con guiones bajos, p. ej., --keyId se convierte en VPK_KEY_ID). Esta es la forma recomendada de pasar secretos en CI sin exponerlos en la línea de comandos.

Salida del lanzamiento

Cuando la compilación de un lanzamiento se haya completado, deberías tener los siguientes recursos en tu --outputDir:

  • MyAppId-1.0.0-full.nupkg - Lanzamiento completo: contiene tu paquete de actualización completo.
  • MyAppId-1.0.0-delta.nupkg - Lanzamiento delta: solo si existía un lanzamiento anterior del que construir un delta. Son opcionales para compilar/desplegar, pero aceleran el proceso de actualización para los usuarios, ya que solo necesitan descargar lo que ha cambiado entre versiones en lugar del paquete completo.
  • MyAppId-Portable.zip - Lanzamiento portátil: puedes desplegarlo de forma opcional para permitir que los usuarios ejecuten y actualicen tu aplicación sin instalarla.
  • MyAppId-Setup.exe - Instalador: usado por la mayoría de los usuarios para instalar la aplicación en el sistema de archivos local.
  • releases.{channel}.json - Índice de lanzamientos: una lista de todos los lanzamientos disponibles. Utilizado por UpdateManager para localizar el último lanzamiento aplicable.
  • RELEASES - Archivo de lanzamientos heredado: solo se utiliza para clientes que migran a Velopack desde Squirrel.
  • assets.{channel}.json - Recursos de compilación: una lista de recursos creados en la compilación más reciente. Utilizado por los comandos de despliegue de Velopack.

No es necesario desplegar todos estos archivos para que los usuarios puedan actualizar, por lo que deberías revisar la guía de despliegue para obtener más información sobre qué archivos distribuir.

tip

No existe un paquete de instalación para Linux. El programa se distribuye como un .AppImage con actualización automática. El motivo es que .AppImage funciona en prácticamente cualquier distribución moderna sin necesidad de dependencias adicionales. Simplemente descarga el .AppImage, ejecuta chmod +x y haz clic para iniciarlo. Es posible instalar un .AppImage, pero esto queda a criterio del usuario para instalar algo como appimaged o AppImageLauncher.

Firma de código

Aunque no es obligatorio para compilaciones locales / pruebas, siempre debes firmar digitalmente tu aplicación antes de distribuirla a los usuarios.

tip

Si no firmas digitalmente, tu aplicación podría no ejecutarse. [Leer más]

Personalización del instalador

En las plataformas que incluyen instaladores, puedes personalizar el comportamiento. [Leer más]

Otros argumentos recomendados

  • Si tu aplicación es específica del sistema operativo o de la arquitectura de CPU, deberías considerar agregar un --runtime. [Leer más]
  • Si planeas distribuir canales de lanzamiento para diferentes arquitecturas o funcionalidades, considera agregar un --channel [Leer más]
  • Si tu aplicación requiere marcos adicionales (p. ej., vcredist) considera --framework [Leer más]