mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-24 04:00:02 +01:00
<!-- Enter a brief description/summary of your PR here. What does it fix/what does it change/how was it tested (even manually, if necessary)? --> ## Summary of the Pull Request - Fixes an issue where Image Resizer stops working after upgrading PowerToys on Windows 10 - Root cause: the PackageIdentityMSIX (sparse app) was not being properly cleaned up during upgrade ## Problem Previous versions of PowerToys installed the sparse app on Windows 10. The current version only installs it on Windows 11+ (build >= 22000). During upgrade on Windows 10: 1. The `NOT UPGRADINGPRODUCTCODE` condition prevented the uninstall action from running 2. The Windows 11 version check prevented the new sparse app from being installed 3. Result: the old sparse app remained on the system, causing Image Resizer to malfunction ## Fix Changed the `UninstallPackageIdentityMSIX` condition from: Installed AND (NOT UPGRADINGPRODUCTCODE) AND (REMOVE="ALL") to: Installed AND (REMOVE="ALL") This ensures the old sparse app is properly cleaned up during upgrades, which is also consistent with other similar cleanup <!-- Please review the items on the PR checklist before submitting--> ## PR Checklist - [x] Closes: #45178 #45280 <!-- - [ ] Closes: #yyy (add separate lines for additional resolved issues) --> - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx <!-- Provide a more detailed description of the PR, other things fixed, or any additional comments/features here --> ## Detailed Description of the Pull Request / Additional comments <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed 1. Install PowerToys version 0.96.1 on Windows 10. 2. Upgrade to version 0.97.1. 3. Run Get-AppxPackage -Name "*Sparse*" in PowerShell to check whether a Sparse App package is present.
PowerToys Source Code
Code organization
The PowerToys are split into DLLs for each PowerToy module (modules folder), and an executable (runner folder) that loads and manages those DLLs.
The settings window is a separate executable, contained in settings-ui folder. It utilizes a WebView to display an HTML-based settings window.
The common contains code for a static library with helper functions, used by both the runner and the PowerToys modules.