Uno de los retos más comunes al desarrollar aplicaciones modernas con WinUI 3 (Windows App SDK) es la necesidad de empaquetarlas como MSIX para poder ejecutarlas. Si bien MSIX ofrece ventajas como actualización automática y mayor seguridad, no siempre es la opción ideal —especialmente para herramientas internas, entornos empresariales controlados o aplicaciones distribuidas manualmente.
Con la evolución del Windows App SDK, Microsoft introdujo la posibilidad de ejecutar aplicaciones *WinUI 3 unpackaged
(sin MSIX), utilizando un enfoque conocido como bootstrapper API. Este artículo explora cómo implementar este enfoque, cuáles son sus ventajas y limitaciones, y cómo configurarlo correctamente.
¿Qué significa una app WinUI 3 sin empaquetar?
Una aplicación unpackaged es aquella que:
- No requiere instalación con MSIX.
- No se registra en el sistema con capacidades como actualizaciones automáticas o integración con URI handlers.
- Puede ejecutarse directamente desde un
.exe
como cualquier aplicación tradicional Win32. - Requiere inicialización manual del entorno Windows App SDK.
Esta opción resulta ideal para desarrolladores que buscan control absoluto sobre el despliegue y ejecución.
¿Qué es el bootstrapper API?
El bootstrapper API es una librería que permite inicializar manualmente el entorno de ejecución del Windows App SDK en tiempo de ejecución, sin necesidad de empaquetado MSIX. Es el corazón del soporte “unpackaged apps” en WinUI 3.
Permite:
- Iniciar el runtime del Windows App SDK desde el ejecutable.
- Validar e instalar automáticamente las dependencias necesarias.
- Acceder a la funcionalidad de WinUI 3 desde un entorno nativo (sin empaquetar).
Requisitos previos
- Visual Studio 2022 (v17.8+) con workloads para Desktop Development (C++) y .NET Desktop.
- Windows App SDK 1.3 o superior.
- SDK de Windows 11 (recomendado).
- Runtime de Windows App SDK preinstalado en la máquina destino.
Crear una app WinUI 3 sin MSIX paso a paso
Paso 1: Crear el proyecto
En Visual Studio:
- Crear un nuevo proyecto del tipo “Blank App, Unpackaged (WinUI 3 in Desktop)”.
- Seleccionar el target framework
net8.0-windows10.0.19041.0
o superior.
Esto generará una estructura básica con soporte para ejecución sin MSIX.
Paso 2: Verificar el uso del bootstrapper
using Microsoft.UI;
using Microsoft.UI.Xaml;
using Microsoft.Windows.AppLifecycle;
using Microsoft.Windows.AppNotifications;
using Microsoft.Windows.ApplicationModel.DynamicDependency;
class Program
{
[STAThread]
static void Main(string[] args)
{
Bootstrap.Initialize();
var app = new App();
app.Run();
}
}
Paso 3: Agregar referencia al SDK
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
<UseWinUI>true</UseWinUI>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.5.240316000" />
</ItemGroup>
</Project>
Paso 4: Generar el ejecutable sin MSIX
dotnet publish -c Release -r win-x64 --self-contained true
Paso 5: Verificación del entorno en tiempo de ejecución
try
{
Bootstrap.Initialize();
}
catch (Exception ex)
{
MessageBox.Show("El entorno de ejecución requerido (Windows App SDK) no está disponible. Por favor, instale la versión correcta.", "Error");
Environment.Exit(1);
}
Ventajas del enfoque sin empaquetado
- Distribución simple: basta con copiar el
.exe
y sus dependencias. - Integración con flujos CI/CD existentes sin necesidad de firmar o empaquetar.
- Ideal para herramientas internas, utilidades empresariales o entornos sin Store.
- Compatible con instaladores tradicionales como InnoSetup, NSIS o scripts personalizados.
Limitaciones
- No tiene acceso a funciones específicas del manifiesto MSIX (por ejemplo, alias de terminal, protocol handlers).
- El usuario final debe tener el runtime del Windows App SDK instalado.
- No se puede publicar en Microsoft Store sin MSIX.
Buenas prácticas
- Incluir en el instalador un chequeo del runtime del Windows App SDK.
- Usar
InvariantGlobalization=true
para mejorar compatibilidad y reducir tamaño. - Documentar claramente que la app no requiere instalación formal.
Escenarios ideales
- Aplicaciones de línea de comandos con interfaz gráfica ligera.
- Herramientas internas para técnicos de soporte o administradores.
- Desarrollos experimentales o MVPs donde se requiere rapidez de entrega.
- Sustitución de aplicaciones WPF o WinForms clásicas por tecnologías modernas sin imponer fricción en la distribución.
Conclusión
Desarrollar aplicaciones WinUI 3 sin empaquetado MSIX es completamente viable gracias al bootstrapper API del Windows App SDK. Este enfoque ofrece flexibilidad total en despliegue, una experiencia de desarrollo más cercana a las apps Win32 tradicionales, y la potencia de una interfaz moderna con XAML.
Para equipos que buscan adoptar WinUI 3 sin complicaciones de distribución, esta alternativa representa un camino realista, moderno y alineado con las necesidades empresariales del escritorio de hoy.
Ver también
- Integración de WebView2 en aplicaciones WinUI 3
- Construcción de un asistente contextual para escritorio usando IA local con acceso al sistema
- Integración de inferencia local ONNX con Windows ML en apps modernas
- Integración con servicios locales vía App Services y extensión de funcionalidades entre apps
- Implementación de Background Tasks persistentes en apps modernas