Una aplicación moderna de WPF para gestionar actualizaciones y desinstalaciones de software en Windows usando winget
🔍 Keywords: winget gui • windows package manager • software updater • system cleanup • uninstaller • fluent design • wpf • .net 8
Características • Instalación • Uso • Tecnologías • Contribuir
WingetUpdater es un gestor de software moderno y elegante para Windows que aprovecha el poder de Windows Package Manager (winget) para:
- ✅ Listar todos los programas instalados en tu sistema
- 🔄 Actualizar aplicaciones con un solo clic
- 🗑️ Desinstalar programas con limpieza profunda de archivos residuales
- 🧹 Limpiar archivos temporales, caché y basura del sistema
- 📊 Monitoreo en tiempo real con logs detallados
Todo esto con una interfaz moderna basada en Fluent Design 2024-2025 y principios de accesibilidad WCAG AA.
- Lista completa de programas instalados (no solo actualizaciones)
- Actualización individual con botón ⚡ en cada programa
- Desinstalación limpia con botón 🗑️ que elimina:
- Programas vía winget
- Archivos residuales en
%APPDATA% - Archivos residuales en
%LOCALAPPDATA% - Accesos directos huérfanos
- NO toca el registro (siguiendo recomendaciones de Microsoft)
- Archivos temporales del usuario
- Archivos temporales del sistema (requiere admin)
- Vaciado de papelera de reciclaje
- Caché de navegadores (Chrome, Edge, Firefox)
- Caché de Windows (Thumbnails, Prefetch)
- Microsoft Blue (#0078D4) como color principal (transmite confianza)
- Fluent Design System con sombras sutiles para profundidad
- Tipografía optimizada con Segoe UI Variable
- Contraste WCAG AA en todas las combinaciones de colores
- Espaciado optimizado para reducir carga cognitiva
- Confirmaciones antes de operaciones destructivas
- Vista previa de lo que se eliminará
- Detección automática de privilegios de administrador
- Logging completo de todas las operaciones
- Basado en documentación oficial de Microsoft
- Windows 10/11 (versión 1809 o superior)
- .NET 8.0 Runtime (Descargar)
- Windows Package Manager (winget) - Viene preinstalado en Windows 11, o instala App Installer desde Microsoft Store
-
Clona el repositorio
git clone https://github.com/CharlieCardenasToledo/WPF-App.git cd WPF-App/WingetUpdater -
Compila el proyecto
dotnet build
-
Ejecuta la aplicación
dotnet run
📦 Descarga directa: WingetUpdater v1.0.0
- Descarga el archivo
WingetUpdater-v1.0.0-win-x64.zipdesde Releases - Extrae el contenido del ZIP a una carpeta
- Ejecuta
WingetUpdater.exe
⚠️ Requisito: Necesitas tener instalado .NET 8.0 Runtime en tu sistema.
💡 Nota: Windows Defender puede mostrar una advertencia la primera vez. Esto es normal para aplicaciones sin certificado de firma. Haz clic en "Más información" → "Ejecutar de todas formas".
-
Lista de Programas
- La aplicación carga automáticamente todos los programas instalados
- Cada programa muestra: Nombre, ID, Versión Actual, Nueva Versión (si hay), Estado
-
Acciones Individuales
- ⚡ Actualizar - Clic en el botón azul para actualizar ese programa específico
- 🗑️ Desinstalar - Clic en el botón rojo para desinstalar con limpieza profunda
-
Acciones Masivas (botones superiores)
- Seleccionar Todo / Deseleccionar Todo - Para operaciones en lote
- Actualizar Seleccionados - Actualiza múltiples programas a la vez
- Actualizar Todo - Actualiza todos los programas con actualizaciones
- Desinstalar Seleccionados - Desinstala múltiples programas
-
Logs Técnicos
- Botón "Mostrar Detalles Técnicos" para ver logs en tiempo real
- Panel colapsable para mantener la UI limpia
Cuando desinstalas un programa, WingetUpdater:
- Ejecuta
winget uninstall --id "PackageId" --exact --silent - Busca archivos residuales en:
%APPDATA%\[ProgramName]%LOCALAPPDATA%\[ProgramName]- Accesos directos en Desktop y Start Menu
- Elimina los archivos encontrados (con tu confirmación)
- Muestra un resumen de lo eliminado
- WPF (Windows Presentation Foundation) - Framework de UI
- XAML - Markup para diseño de interfaz
- Fluent Design System - Principios de diseño de Microsoft
- .NET 8.0 - Framework de desarrollo
- C# - Lenguaje de programación
- MVVM Pattern - Arquitectura (Model-View-ViewModel)
- Windows Package Manager (winget) - Gestión de paquetes
- SHEmptyRecycleBin (P/Invoke) - API oficial para vaciar papelera
- Path.GetTempPath() - API de .NET para archivos temporales
- Environment.SpecialFolder - Rutas seguras del sistema
System.Diagnostics.Process- Ejecución de comandos wingetSystem.IO- Gestión de archivos y directoriosSystem.Runtime.InteropServices- P/Invoke para APIs de Windows
WingetUpdater/
├── Models/ # Modelos de datos (PackageInfo, etc.)
├── ViewModels/ # Lógica de presentación (MVVM)
├── Views/ # Interfaces de usuario (XAML)
├── Services/
│ ├── WingetService.cs # Integración con winget
│ ├── CleanupService.cs # Limpieza del sistema
│ └── UninstallService.cs # Desinstalación limpia
├── Helpers/
│ └── AdminHelper.cs # Detección de privilegios
├── Commands/ # RelayCommand para MVVM
├── Converters/ # Value converters para XAML
└── Resources/
└── Styles.xaml # Estilos modernos Fluent Design
¡Las contribuciones son bienvenidas! Si quieres mejorar WingetUpdater:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add: Amazing Feature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
- Sistema de pestañas completo (Actualizaciones | Programas | Limpieza)
- Interfaz para limpieza de sistema desde la UI
- Soporte para múltiples idiomas
- Empaquetado como MSIX para Microsoft Store
- Programación de actualizaciones automáticas
- Historial de actualizaciones y desinstalaciones
- Restaurar programas desinstalados
Este proyecto fue desarrollado siguiendo documentación oficial de Microsoft y mejores prácticas de la industria:
- ✅ Comandos winget oficiales (
--exact,--silent,--source winget) - ✅ APIs oficiales de Windows (
SHEmptyRecycleBin,Path.GetTempPath()) - ✅ Environment.SpecialFolder para rutas seguras
⚠️ NO limpieza automática del registro (riesgoso según Microsoft)- ✅ WCAG AA compliance para accesibilidad
- ✅ Fluent Design principles para UI moderna
Este proyecto está bajo la Licencia MIT. Ver archivo LICENSE para más detalles.
Charlie Cárdenas Toledo
- GitHub: @CharlieCardenasToledo
- Microsoft por Windows Package Manager (winget)
- Fluent Design System por los principios de diseño
- La comunidad de .NET y WPF por recursos y documentación
⭐ Si te gusta este proyecto, dale una estrella! ⭐