Migrar una aplicación de Windows a Arm64: El camino completo
Actualizado 5 jun 2026
Una compilación nativa Arm64 marca la diferencia entre que tu aplicación consuma batería a toda velocidad o se arrastre a través de la emulación Prism. También desbloquea lo que la emulación no puede hacer en absoluto: controladores de kernel, extensiones de shell, integración profunda con hardware. Aquí tienes el camino completo desde solo x64 hasta distribuir una versión nativa Arm64.
Paso 1: Audita tus dependencias primero
Este es el paso que determina el éxito o fracaso del puerto, y ocurre antes de que toques una sola configuración de compilación. Cada biblioteca estática, paquete NuGet, DLL nativa y complemento que cargue tu aplicación debe tener una compilación Arm64 (o ARM64EC). Recorre todo el árbol de dependencias. Una dependencia nativa solo x64 sin una versión Arm64 ni reemplazo es la señal de que necesitarás ARM64EC en lugar de un puerto puro Arm64. Consulta tus dependencias en nuestro catálogo para ver cuáles ya se distribuyen de forma nativa.
Paso 2: Agrega la plataforma de solución ARM64
En Visual Studio (usa 2022 17.4+): Configuration Manager → Active solution platform → <New...> → selecciona ARM64, copia la configuración de tu plataforma x64 existente, mantén marcada la opción “Create new project platforms”. Tu proyecto ahora tiene un destino Arm64.
Paso 3: Instala las herramientas de compilación Arm64
A través del Instalador de Visual Studio, agrega las herramientas de compilación Arm64 (compilador/bibliotecas MSVC Arm64). No necesitas un dispositivo Arm para compilar: Visual Studio realiza compilación cruzada a Arm64 desde una máquina x64.
Paso 4: Compila de forma nativa o mediante compilación cruzada
Dos configuraciones válidas:
- En el dispositivo (nativa): desarrolla en una laptop Snapdragon X: obtienes depuración local y puedes ejecutar tu suite de pruebas en el dispositivo de destino.
- Compilación cruzada (host x64): más rápida y económica, pero no puedes ejecutar el resultado localmente; configurarás la depuración remota a un dispositivo Arm o VM.
El patrón pragmático de CI es compilación cruzada en x64 + un trabajo nativo Arm64 para pruebas; consulta la guía de CI/CD.
Paso 5: Cuando una dependencia te bloquea → ARM64EC
Si una dependencia esencial es solo x64 y no se puede reemplazar, no tienes que permanecer completamente emulado. ARM64EC permite que el código nativo ARM64EC y el código x64 emulado compartan un solo proceso: recompila tus rutas críticas de forma nativa mientras la dependencia x64 obstinada sigue ejecutándose. Todos los detalles en la guía detallada de ARM64EC.
Paso 6: Verifica y distribuye
Confirma que la compilación es genuinamente nativa: la columna Arquitectura del Administrador de tareas debe mostrar ARM64 (consulta cómo verificar). Luego publica: en el momento en que tu compilación Arm64 llegue a winget, Microsoft Store o GitHub Releases, los rastreadores de compatibilidad como el nuestro lo detectan y cambian tu entrada a nativa. Explora el catálogo de aplicaciones nativas y la tendencia de cuota nativa para ver el ecosistema al que te estás uniendo.
El árbol de decisiones
- Todas las dependencias tienen compilaciones Arm64 → Arm64 puro, mejor resultado.
- Una o dos dependencias solo x64, sin reemplazo → ARM64EC, incremental.
- Una dependencia de controlador de kernel bloqueante → eso es un puerto de controlador, un esfuerzo aparte.