A modern, feature-rich Windows GUI application for managing packages using the Windows Package Manager (winget) command-line tool.
- Search for available packages by name or ID
- View detailed package information
- One-click installation with progress feedback
- Automatic acceptance of package and source agreements
- View all packages with available updates
- Update individual packages
- Batch update all packages at once
- Real-time status feedback
- View complete list of all installed packages
- Sort by:
- Name (alphabetical)
- ID (package identifier)
- Version (numeric version comparison)
- Uninstall selected programs
- Real-time search by program name or ID
- Quick installation from search results
- Press Enter to search or use the Search button
- Windows 10 (Build 19041) or later
- Windows 11 (Recommended)
- .NET 6.0 or later
- Windows Package Manager (winget) installed
- Administrator privileges for install/update operations
WinGetUI/
├── Models/
│ ├── Package.cs # Package data model
│ └── OperationResult.cs # Operation result handling
├── Services/
│ └── WingetService.cs # Winget integration service
├── Views/
│ ├── InstallView.xaml(.cs) # Install packages UI
│ ├── UpdateView.xaml(.cs) # Update packages UI
│ ├── BrowseView.xaml(.cs) # Browse installed UI
│ └── SearchView.xaml(.cs) # Search packages UI
├── Assets/ # Application icons and resources
├── App.xaml(.cs) # Application entry point
├── MainWindow.xaml(.cs) # Main application window
└── Package.appxmanifest # UWP application manifest
- Install Visual Studio 2022
- Install ".NET Desktop Development" workload
- Install "Windows 10 SDK" (Build 19041 or later)
- Ensure Windows Package Manager is installed
-
Open in Visual Studio
Open WinGetUI.sln in Visual Studio 2022 -
Restore NuGet Packages
- Visual Studio will automatically restore packages on load
-
Build the Project
Build → Build Solution (Ctrl+Shift+B) -
Run the Application
Debug → Start Debugging (F5)
- Press
F5to run with debugging - Press
Ctrl+F5to run without debugging
dotnet run --project WinGetUI\WinGetUI.csproj.\bin\Release\net6.0-windows10.0.19041.0\WinGetUI.exe- Click the Install tab
- Enter a program name or ID in the search box
- Click Search (or leave empty to show all)
- Select a program from the list
- Click Install Selected Package
- Confirm in the dialog
- Click the Update tab
- View all programs with available updates
- Option A: Select a program and click Update Selected Package
- Option B: Click Update All to update all packages at once
- Confirm in the dialog
- Click the Browse tab
- View all installed programs
- Use sort buttons:
- Sort by Name - Alphabetical order
- Sort by ID - Package ID order
- Sort by Version - Numeric version order
- Select a program and click Uninstall Selected to remove it
- Click the Search tab
- Enter a program name or ID
- Press Enter or click Search
- Select from results
- Click Install Selected Package to install
The Browse tab includes intelligent version number sorting that properly handles multi-part version numbers (e.g., 1.2.3.4), not just alphabetical sorting.
- Status messages show current operation
- Loading indicators provide visual feedback
- Dialog confirmations prevent accidental operations
- Graceful error messages for failed operations
- Detailed status updates throughout the process
- Automatic handling of winget edge cases
- Non-blocking operations using async/await
- Tab-based interface for easy navigation
- Clean, modern Windows 11 design language
- Enter in Search tab - Execute search
- Ctrl+Shift+B in Visual Studio - Build solution
- F5 in Visual Studio - Start debugging
Solution: Install Windows Package Manager from Microsoft Store or via GitHub
Solution: Run the application as Administrator for install/update/uninstall operations
Solution:
- Verify .NET 6.0 SDK is installed
- Check Windows SDK version (19041 or later)
- Restore NuGet packages manually:
dotnet restore
Solution:
- Verify Windows 10 Build 19041 or later
- Check that Windows App SDK is properly installed
- Try rebuilding:
dotnet clean && dotnet build
Encapsulates all interactions with winget:
- Executes winget commands asynchronously
- Parses command output into Package objects
- Handles errors gracefully
- Provides methods for: install, update, uninstall, search
Represents a software package with properties:
Id- Unique package identifierName- Display nameVersion- Current/available versionPublisher- Package publisherStatus- Installation statusDescription- Package description
Four main UI views built with XAML and WinUI 3:
- Each view handles specific functionality
- Uses ObservableCollection for data binding
- Implements proper async/await patterns
- Provides user feedback and confirmations
To extend this application:
- Add new package sources: Modify
WingetServiceto support additional sources - Custom sorting: Add new
IComparer<Package>implementations in views - Advanced search: Enhance search with filters and advanced options
- Statistics: Track installation history and usage statistics
- Themes: Customize app appearance with custom XAML themes
MIT License - Feel free to use, modify, and distribute
For issues, feature requests, or contributions, please refer to the project repository.
- Complete rewrite with modern UWP architecture
- Four main features: Install, Update, Browse, Search
- Advanced sorting capabilities
- Improved error handling and user feedback
- WinUI 3 modern design
- Initial release
- Basic winget integration
Built with:
Enjoy managing your packages with WinGet UI! 🚀



