Skip to content

Guía de pruebas MSIX antes del envío: Detecta los problemas de empaquetado localmente, no durante la certificación del Store

2026-06-01

Tags: Windows · Microsoft Store · MSIX · Trampas del Store


En Trampas del Store #4 nos encontramos con un problema donde el trimming de .NET desactivaba silenciosamente funcionalidades de WinUI 3 — todo funcionaba perfectamente en Debug local, pero el paquete Release era rechazado tras el envío. El punto en común de estos problemas: si se verifica localmente el artefacto empaquetado antes del envío, muchos errores se pueden detectar con antelación. Por supuesto, no todos los problemas se pueden descubrir antes (por ejemplo, la entrada fantasma en el menú Inicio causada por una dependencia es difícil de reproducir localmente), pero al menos se puede interceptar una gran mayoría.

Este artículo resume un flujo de verificación local antes del envío MSIX, abarcando la certificación WACK, la instalación de certificados autofirmados, la instalación de dependencias y las pruebas en una máquina virtual limpia.

Paso 1: Ejecutar el WACK (Windows App Certification Kit)

El WACK es una herramienta de precertificación local proporcionada por Microsoft. Ejecuta una serie de comprobaciones en su paquete, simulando algunas de las pruebas de certificación del Store.

Algunos puntos importantes:

  • Solo puede verificar paquetes Release, los paquetes Debug no son compatibles — lo que idealmente le obliga a probar la compilación Release
  • WACK ha sido marcado como obsoleto por Microsoft (ya no se mantiene), pero sigue siendo útil para verificaciones locales opcionales; la certificación oficial se ejecuta automáticamente después del envío al Store
  • Aprobar el WACK no garantiza pasar la certificación del Store, pero ayuda a interceptar muchos problemas básicos (conformidad de APIs, rendimiento, seguridad, etc.)

Uso: en el asistente de empaquetado y publicación de Visual Studio, en el paso de selección y configuración del paquete, marque la opción inferior «Generar proyecto para validar la aplicación con el Kit de certificación de aplicaciones Windows». Una vez completado el empaquetado, aparecerá el botón «Iniciar el Kit de certificación de aplicaciones Windows». También puede buscar Windows App Certification Kit en el menú Inicio para iniciarlo manualmente.

Paso 2: Crear un paquete Test con certificado autofirmado

Este paso es algo enrevesado.

Los paquetes MSIX deben estar firmados para poder instalarse. Durante el desarrollo, Visual Studio utiliza un certificado temporal, pero el paquete MSIX resultante no necesariamente incluye un certificado utilizable. El proceso real es el siguiente:

Primero, empaquetar una vez en modo sideloading

  1. Clic derecho en el proyecto → Empaquetar y publicar
  2. Seleccionar Sideloading (no Microsoft Store)
  3. Seleccionar el certificado de firma y completar el empaquetado

Luego, crear un paquete Test en modo Store

  1. Empaquetar y publicar nuevamente, esta vez seleccionando Microsoft Store (AppName proporcionado por PublisherName)
  2. El paquete Test así creado (en la carpeta _Test del directorio AppPackages) contendrá el certificado autofirmado

Si omite los pasos 1 a 3 y crea directamente un paquete Store, el certificado MSIX estará vacío — un detalle bastante engañoso.

Paso 3: Instalar el certificado

Una vez obtenido el paquete Test con certificado:

Instalar el certificado

  1. Clic derecho en el archivo .msixPropiedades → pestaña Firmas digitales
  2. Seleccionar la firma → DetallesVer certificado
  3. Instalar certificado → seleccionar Equipo local → almacenarlo en Personas de confianza (Trusted People)

Nota: el Publisher (CN) del certificado debe coincidir con el <Publisher> en Package.appxmanifest, de lo contrario la instalación fallará.

Paso 4: Instalar dependencias y el paquete MSIX

Si su proyecto de Windows App SDK está en modo framework-dependent (esta es la configuración predeterminada), la ejecución de la aplicación depende del runtime de Windows App Runtime. En la distribución por Store, las dependencias se gestionan automáticamente, pero para las pruebas locales deben instalarse manualmente.

La buena noticia: la carpeta _Test del paquete Test contiene un subdirectorio Dependencies con los paquetes de dependencias organizados por arquitectura:

AppPackages/
  MyApp_1.0.0.0_x64_Test/
    Dependencies/
      x64/
        Microsoft.WindowsAppRuntime.1.8.msix
        ...
    MyApp_1.0.0.0_x64.msix

Orden de instalación: primero instalar el runtime desde Dependencies, luego la aplicación en sí.

En modo self-contained (si se ha configurado <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> en .csproj), no es necesario instalar dependencias adicionales — el runtime ya está incluido en la aplicación.

Paso 5: Verificación completa en una máquina virtual limpia

La máquina de desarrollo tiene demasiadas cosas instaladas — diversos SDKs, runtimes, cachés. Que su aplicación funcione ahí no significa que funcionará para los usuarios. Se recomienda recorrer todo el proceso en un entorno limpio.

Soluciones de virtualización

Ambas opciones son válidas:

  • Hyper-V Quick Create: la solución recomendada por Microsoft. Busque «Hyper-V Quick Create» en el menú Inicio y seleccione «MSIX Packaging Tool Environment» para crear una VM
  • VMware: la solución que yo utilizo personalmente. Crear una VM limpia con Windows 10/11, tomar una instantánea y restaurar el estado limpio antes de cada prueba

Independientemente de la opción elegida, el requisito fundamental es uno solo: el entorno debe acercarse lo más posible al entorno de primera instalación de los usuarios.

Qué verificar en la VM limpia

  1. Instalar el certificado autofirmado (procedimiento del paso 3)
  2. Instalar los paquetes de dependencias (paso 4)
  3. Instalar la aplicación en sí
  4. Iniciar la aplicación y verificar las funcionalidades principales
  5. Comprobar el menú Inicio, la bandeja del sistema, la desinstalación, etc.

Lista de comprobación

Repase esta lista antes de enviar al Store:

  • [ ] Crear un paquete Test con la configuración Release
  • [ ] Ejecutar el WACK y asegurarse de que no hay errores graves
  • [ ] Verificar que el paquete Test contiene un certificado autofirmado (empaquetar primero una vez en modo sideloading)
  • [ ] Instalar el certificado en Equipo local → Personas de confianza
  • [ ] Realizar una verificación completa en una VM limpia: instalar certificado → instalar dependencias → instalar la aplicación → probar funcionalidades
  • [ ] En modo framework-dependent, verificar que los paquetes de dependencias se instalan correctamente
  • [ ] La aplicación se inicia con normalidad, las funcionalidades principales están disponibles, el menú Inicio/la desinstalación funcionan correctamente

Este artículo es una lectura complementaria de la serie Trampas del Store.