Compartir a través de


Introducción al empaquetado

El empaquetado define cómo se instala, actualiza e integra la aplicación con Windows. Las aplicaciones winUI 3 se empaquetan de forma predeterminada, mientras que muchas aplicaciones de escritorio, como las aplicaciones win32 tradicionales, se ejecutan sin empaquetar. Elegir entre una aplicación empaquetada o desempaquetada afecta a las características que puede usar, el modelo de implementación en el que confía y la experiencia general que obtienen los clientes.

Nota:

¿Crear una nueva aplicación WinUI 3? Ya está empaquetado automáticamente de forma predeterminada. Las instrucciones siguientes son más relevantes para los desarrolladores que necesitan elegir explícitamente, normalmente al migrar una aplicación existente, implementar en máquinas empresariales o agregar características de Windows a una aplicación que no se empaquetaba originalmente.

¿Por qué importa el empaquetado de aplicaciones?

Las aplicaciones empaquetadas se benefician de un modelo de instalación limpio, actualizaciones automáticas y acceso a las características de Windows que requieren la identidad del paquete, incluidas las tareas en segundo plano, las notificaciones, las extensiones de menú contextual, los destinos de recurso compartido y otros puntos de extensibilidad. El empaquetado también ayuda a garantizar implementaciones más limpias, actualizaciones confiables y distribución simplificada a través de canales como las herramientas de implementación empresarial y Microsoft Store.

Características que requieren la identidad del paquete

Estas características de Windows solo funcionan en aplicaciones que tienen identidad de paquete, ya sea a través del empaquetado MSIX completo o paquete con ubicación externa (empaquetado disperso).

Feature Descripción
Tareas en segundo plano Ejecute código cuando la aplicación no esté en primer plano, por ejemplo, para sincronizar datos, procesar descargas o responder a eventos del sistema.
Windows API de IA (PhiLice, OCR, etc.) Acceda a funcionalidades de inteligencia artificial en el dispositivo, como modelos de lenguaje local, reconocimiento de texto e análisis de imágenes.
Notificaciones push (WNS) Reciba notificaciones en tiempo real del servicio en la nube a través del servicio de notificaciones de Windows.
Destino de compartición Permitir que los usuarios compartan contenido de otras aplicaciones directamente en la suya a través de la hoja Compartir del sistema.
Extensiones de menú contextual personalizadas Agregue las acciones de tu aplicación al menú contextual en el Explorador de archivos y otras superficies de interfaz.
Asociaciones de protocolo y tipo de archivo Registre la aplicación como controlador para tipos de archivo específicos o protocolos de URI (por ejemplo, yourapp://).
Tareas de inicio Inicie la aplicación automáticamente cuando el usuario inicie sesión en Windows.
App Services Exponga servicios en segundo plano a los que otras aplicaciones puedan llamar, lo que permite la comunicación entre aplicaciones.

Sugerencia

Si está desempaquetado y encontrando errores E_ILLEGAL_METHOD_CALL o APPMODEL_ERROR_NO_PACKAGE al llamar a Windows APIs, ese es un requisito de identidad del paquete. Vea el empaquetado con ubicación externa (empaquetado disperso) como la solución de fricción más baja.

Para obtener más información, consulte Características que requieren la identidad del paquete.

Empaquetamiento de modelos de un vistazo

Modelo Identidad del paquete Instalador Apto para almacenamiento Más adecuado para
Empaquetado (MSIX) ✅ Sí MSIX reemplaza el instalador ✅ Sí Nuevas aplicaciones, publicación en la Tienda, MDM empresarial
Empaquetado con ubicación externa ✅ Sí El instalador existente ❌ No Aplicaciones existentes que tienen su propio instalador, vendedores de software independientes
Desempaquetado ❌ No XCopy/script ❌ No Herramientas internas, utilidades de desarrollo, escenarios sencillos

Aplicaciones empaquetadas (MSIX)

Las aplicaciones empaquetadas usan MSIX y tienen package identity, que es necesario para muchos puntos de extensibilidad Windows. La identidad del paquete permite Windows identificar de forma confiable el autor de la llamada de las API de la plataforma, por lo que estas características dependen de ella.

  • Las aplicaciones empaquetadas normalmente se ejecutan en un contenedor ligero de aplicaciones con virtualización del registro y sistema de archivos (consulte AppContainer para aplicaciones heredadas y aplicaciones AppContainer msix).
  • Las aplicaciones también se pueden configurar para que no se ejecuten en un contenedor de aplicaciones si es necesario.
  • MSIX se usa tanto para el empaquetado como para la instalación (consulte ¿Qué es MSIX?).

Empaquetado con ubicación externa (empaquetado disperso)

El empaquetado con ubicación externa (también denominado paquetes dispersos) permite registrar un paquete de identidad pequeño junto con la aplicación existente, sin cambiar el instalador, las ubicaciones binarias ni el proceso de actualización. Se introdujo en Windows 10 versión 2004 (compilación 19041).

Este es el punto ideal para las aplicaciones Win32/WPF/WinForms existentes que se envían a través de su propio instalador (NSIS, WiX, InstallShield, etc.) y no quieren reemplazarlo por MSIX. Registra un paquete de identidad ligero, los archivos binarios permanecen en su lugar y desbloquea el conjunto completo de características de Windows con control de identidad de paquete.

Capacidad MSIX Ubicación externa
Reemplaza el instalador. No
Archivos binarios dentro del paquete No (externo)
Apto para almacenamiento No
Identidad del paquete
Mecanismo de actualización Actualización de MSIX El mecanismo existente

Tutorial completo: Otorgar la identidad del paquete mediante el empaquetado con ubicación externa

Aplicaciones sin empaquetar

Las aplicaciones sin empaquetar no usan MSIX y no tienen identidad de paquete, lo que significa que no pueden acceder a las características enumeradas anteriormente.

  • Siguen completamente sin restricciones en términos de la superficie de la API, acceso al sistema de archivos, acceso al registro, elevación y modelo de proceso.
  • La instalación y las actualizaciones se basan en .exe, .msi, instaladores personalizados, ClickOnce o despliegue con xcopy.

Antes de optar por sin empaquetar, verifique la tabla de características mostrada arriba en su hoja de ruta. Si las notificaciones, las tareas en segundo plano o las API de IA están en el horizonte, considere adoptar un enfoque empaquetado.

Elección por escenario

Escenario Modelo recomendado Detalles
Desarrollador independiente publicando en Microsoft Store Empaquetado (MSIX) La Tienda requiere MSIX. Las aplicaciones winUI 3 se empaquetan de forma predeterminada; no se necesitan cambios. → Distribuir la aplicación empaquetada
Aplicación empresariales implementada a través de Intune o Administrador de configuración Ubicación preparada o externa para instaladores existentes Las nuevas aplicaciones deben usar MSIX. Las aplicaciones que ya existen y tienen su propio instalador pueden utilizar el empaquetado con una ubicación externa. → Implementación de aplicaciones empaquetadas
ISV envía una descarga directa con su propio instalador Empaquetado con ubicación externa Registre un paquete de identidad ligero junto con el instalador existente. Los usuarios no ven ningún cambio; tú obtienes las características de Windows. → Asignar identidad del paquete
Herramienta interna o utilidad de desarrollador Desempaquetado Más sencillo de compilar e implementar. El SDK de Aplicaciones para Windows funciona a través de NuGet, pero algunas características no estarán disponibles.

Despliegue dependiente del framework frente a despliegue autónomo

Aparte del modelo de empaquetado, las aplicaciones que usan el SDK de aplicaciones de Windows eligen cómo gestionar sus dependencias en tiempo de ejecución.

  • Dependiente del framework: el entorno de ejecución de SDK de aplicaciones de Windows debe estar instalado en el equipo del usuario. Huella de la aplicación más pequeña; depende de que el runtime esté presente o se instale automáticamente.
  • Self-contained: todos los archivos binarios de SDK de Aplicaciones para Windows se envían con la aplicación. Superficie mayor; ningún requisito de tiempo de ejecución externo. Adecuado para entornos empresariales bloqueados.

Implementación de aplicaciones independientes

Comienza con MSIX

Si compilas una aplicación de escritorio Win32 (a veces denominada clase aplicación de escritorio) o una aplicación de .NET , incluida Windows Presentation Foundation (WPF) y Windows Forms (WinForms), puedes empaquetar e implementar la aplicación mediante MSIX.

Otras tecnologías de instalación