Compartir por


Elegir un modelo de empaquetado para la aplicación de Windows

Nota:

¿Crear una nueva aplicación WinUI 3? Ya está empaquetado automáticamente de forma predeterminada. Esta página es para 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.

Las aplicaciones de Windows se pueden empaquetar, desempaquetar o en algún lugar entre ellos. La elección correcta depende de dos cosas: cómo distribuir la aplicación y qué características de Windows necesita.

Comience con su escenario

"Soy un desarrollador independiente que publica en Microsoft Store"

Use una aplicación MSIX empaquetada. La Tienda requiere empaquetado MSIX. Las aplicaciones winUI 3 creadas en Visual Studio se empaquetan de forma predeterminada; no es necesario realizar ningún cambio. Obtienes una instalación limpia, actualizaciones automáticas y acceso a todas las características limitadas por "package-identity", como las notificaciones y las tareas en segundo plano.

Distribuir la aplicación empaquetada


"Estoy creando una aplicación empresarial implementada a través de Intune o Configuration Manager"

Iniciar empaquetado; considere la ubicación externa si tiene un instalador existente.

  • Si usted está desarrollando una nueva aplicación, use MSIX. Se integra limpiamente con Intune y SCCM/ConfigMgr y proporciona una identidad de paquete completa.
  • Si tiene una aplicación existente con su propio instalador que no puede reemplazar, utilice empaquetado con ubicación externa. Esto proporciona a la aplicación una identidad de paquete y acceso a funciones como notificaciones y tareas en segundo plano, sin alterar cómo o dónde se despliega.
  • Si la aplicación realmente no necesita funciones limitadas por identidad de Windows y controla el entorno de implementación, el uso sin empaquetar funciona, pero encontrará un obstáculo la primera vez que intente agregar notificaciones o características de IA.

Implementar aplicaciones empaquetadas (WINDOWS App SDK)
Conceder identidad de paquete mediante el empaquetado con ubicación externa


"Soy un ISV que envía una descarga directa con mi propio instalador"

Utilice el embalaje con ubicación externa (anteriormente denominado paquetes dispersos).

Este es el punto óptimo para las aplicaciones Win32/WPF/WinForms existentes que se distribuyen a través de su propio instalador (NSIS, WiX, InstallShield, etc.) y no quieren reemplazarlo por MSIX. Registras un paquete de identidad ligero junto con tu instalador existente, los archivos binarios permanecen en su lugar y desbloqueas el conjunto completo de características de Windows limitadas por la identidad del paquete.

Los usuarios no verán ningún cambio en cómo instalan o actualizan la aplicación. Obtienes las características de Windows; ellos obtienen una experiencia familiar.

Conceder identidad de paquete mediante el empaquetado con ubicación externa
Agregar un paquete de identidad en Visual Studio


"Estoy creando una herramienta interna o una utilidad para desarrolladores"

Desempaquetado está bien, con advertencias.

Las aplicaciones sin empaquetar son las más sencillas de compilar e implementar: xcopy, robocopy o un script simple es todo lo que necesita. El SDK de aplicaciones de Windows funciona en aplicaciones sin empaquetar a través de NuGet. Pero algunas características no estarán disponibles y, si más adelante decide que las necesita, implementar la identidad del paquete no es trivial.

Antes de comprometerse al estado no empaquetado, compruebe la tabla de características a continuación en la 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.


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

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 completo de MSIX o del empaquetado con ubicación externa.

Feature Notas
Notificaciones de aplicaciones (notificación emergente) AppNotificationManager requiere la identidad del paquete
Tareas en segundo plano El registro requiere la identidad del paquete
API de Inteligencia artificial de Windows (PhiLice, OCR, etc.) La mayoría de las API de IA de Windows requieren la identidad del paquete
Notificaciones push (WNS) El registro del canal requiere la identidad del paquete
Destino de compartición Declarado en el manifiesto del paquete
Extensiones de menú contextual personalizadas Declarado en el manifiesto del paquete
Asociaciones de protocolo y tipo de archivo Las asociaciones enriquecidas requieren la identidad del paquete
Tareas de inicio Requiere la identidad del paquete
App Services Requiere la identidad del paquete

Sugerencia

Si está desempaquetado y se producen errores al llamar a las API de Windows, eso se debe al requisito de identidad del paquete. Vea empaquetado con ubicación externa como la solución de mínima resistencia.

Empaquetado con ubicación externa

El empaquetado con ubicación externa (también denominados 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).

Proporcione lo siguiente:

  • Un manifiesto de paquete (archivo XML que describe la identidad de la aplicación)
  • Un firmado .msix que contiene solo el manifiesto (sin archivos binarios)

El instalador existente registra este paquete de identidad y Windows trata a la aplicación como una identidad de paquete desde ese momento.

Esto es distinto del empaquetado MSIX completo:

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

Despliegue dependiente del framework frente a despliegue autónomo

Independientemente del modelo de empaquetado, las aplicaciones que usan el SDK de aplicaciones de Windows eligen cómo llevar sus dependencias en tiempo de ejecución:

  • Dependiente del marco: el entorno de ejecución de Windows App SDK 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.
  • Independiente: todos los archivos binarios del SDK de aplicaciones de 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