## Summary of the Pull Request
`PidToIconConverter.Convert` called `Icon.ExtractAssociatedIcon(path)`
without a guard. When a running process's image path is non-empty but
the file no longer exists on disk, the call throws
`FileNotFoundException`. The converter runs per-row while the process
`ListView` virtualizes, so the exception reached
`App_UnhandledException` (which only logs and never sets `e.Handled =
true`) and WinUI 3 fast-failed the whole app (`0xc000027b`).
This is routinely triggered by self-updating software that deletes its
old versioned directory while the old process keeps running — e.g.
Windows Defender (`SenseAPZ`, `MsMpEng`, `MpDefenderCoreService` under
versioned `...\Platform\<ver>\` / `...\DataCollection\<ver>\` paths).
Right-clicking a drive root enumerates every process and reliably
includes such a stale-path process, so the crash is easy to hit in
normal use.
The fix wraps the icon extraction in a try/catch and falls through to
the existing placeholder `BitmapImage`, logging a warning — mirroring
the exception handling already present in `MainViewModel.WatchProcess`.
## PR Checklist
- [x] Closes: #48693
- [ ] **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 — no existing test harness
covers this WinUI converter path; validated manually (steps below)
- [x] **Localization:** All end-user-facing strings can be localized —
n/a; the only new string is a developer log warning, not end-user UI
- [x] **Dev docs:** Added/updated — n/a
- [x] **New binaries:** Added on the required places — n/a; no new
binaries
## Detailed Description of the Pull Request / Additional comments
`src/modules/FileLocksmith/FileLocksmithUI/Converters/PidToIconConverter.cs`:
```csharp
if (!string.IsNullOrEmpty(y))
{
try
{
icon = Icon.ExtractAssociatedIcon(y);
}
catch (Exception ex)
{
// The process image path can be non-empty but no longer exist on disk
// (e.g. self-updating software that deletes its old versioned directory while
// the old process is still running). ExtractAssociatedIcon then throws and,
// because this converter runs per-row during ListView virtualization, the
// exception would otherwise reach App_UnhandledException and fast-fail the app.
// Fall through to the placeholder icon instead of crashing.
Logger.LogWarning($"Couldn't extract the icon for '{y}'. {ex}");
}
}
```
(+ `using ManagedCommon;` — already a project reference; `Logger` is
used identically in `App.xaml.cs`.)
Scope note: this keeps to the targeted converter guard. I deliberately
did **not** also blanket-set `e.Handled = true` in
`App_UnhandledException`, since that would mask unrelated genuine
crashes; the converter guard fully addresses this crash.
## Validation Steps Performed
1. Reproduced on the installed 0.100 build: right-click `C:\` → **Unlock
with File Locksmith** → scroll the list → crash (`0xc000027b`, faulting
module `Microsoft.UI.Xaml.dll`; the FileLocksmith log shows an unhandled
`FileNotFoundException` for `...\SenseAPZ.exe` in
`MainPage...ProcessBindings` / `PidToIconConverter`). Reproduced twice.
2. Built `FileLocksmithUI` (x64/Release) with the fix — 0 warnings / 0
errors.
3. Ran the produced exe on `C:\` and scrolled ~40× over the same list
(which includes the stale `SenseAPZ` row):
- No crash; the process stayed alive and responsive.
- The log shows the new warning firing for the exact `...\SenseAPZ.exe`
path, confirming the catch branch executed on the previously-fatal row.
- 0 unhandled exceptions in the session.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
## Summary of the Pull Request
.NET 10 Upgrade. Requires Visual Studio 2026.
## PR Checklist
- [x] **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
## Detailed Description of the Pull Request / Additional comments
- Upgraded target framework from `net9.0` to `net10.0` across all
projects
- Removed redundant package references now included by default in .NET
10
- Updated package versions to .NET 10 releases
- Modernized regex usage with source generators for better performance
- Added `vbcscompiler` to the spell-check allowlist
(`.github/actions/spell-check/expect.txt`)
## Validation Steps Performed
<!-- START COPILOT CODING AGENT TIPS -->
---
🔒 GitHub Advanced Security automatically protects Copilot coding agent
pull requests. You can protect all pull requests by enabling Advanced
Security for your repositories. [Learn more about Advanced
Security.](https://gh.io/cca-advanced-security)
---------
Co-authored-by: Jeroen van Warmerdam <jeronevw@hotmail.com>
Co-authored-by: Copilot <copilot@github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
- Upgrade to WASDK 1.8.5 that includes a fix for the `TitleBar` control.
- Remove the workaround from windows that use this control, as we can
set the `TitleBar` directly now
<!-- 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
Update project references across multiple projects to utilize
`$(RepoRoot)` for paths, ensuring consistency and improving
maintainability.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: N/A
- [ ] **Communication:** I've discussed this with core contributors
already. If the work hasn't been agreed, this work might be rejected
- [x] **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
This change affects the following projects:
- `src/common/ManagedCsWin32/ManagedCsWin32.csproj`
- `src/common/Common.Search/Common.Search.csproj`
- `src/common/AllExperiments/AllExperiments.csproj`
- `src/modules/peek/Peek.Common/Peek.Common.csproj`
- `src/common/UITestAutomation/UITestAutomation.csproj`
- `src/common/GPOWrapperProjection/GPOWrapperProjection.csproj`
- `src/modules/powerrename/PowerRenameUITest/PowerRename.UITests.csproj`
- `src/common/LanguageModelProvider/LanguageModelProvider.csproj`
- `src/modules/Hosts/Hosts.Tests/HostsEditor.UnitTests.csproj`
- `tools/StylesReportTool/StylesReportTool.vcxproj`
- `src/common/interop/interop-tests/Common.Interop.UnitTests.csproj`
- `tools/MonitorReportTool/MonitorReportTool.vcxproj`
- `src/common/ManagedTelemetry/Telemetry/ManagedTelemetry.csproj`
- `src/modules/peek/Peek.FilePreviewer/Peek.FilePreviewer.csproj`
- `src/settings-ui/Settings.UI.Controls/Settings.UI.Controls.csproj`
- `src/common/Themes/Themes.vcxproj`
- `src/common/COMUtils/COMUtils.vcxproj`
-
`src/modules/cmdpal/Tests/Microsoft.CmdPal.UITests/Microsoft.CmdPal.UITests.csproj`
- `src/modules/imageresizer/tests/ImageResizer.UnitTests.csproj`
The changes were validated by running existing unit tests, which all
passed successfully.
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Executed all unit tests related to the modified projects, confirming
that all tests passed without issues.
```
## Summary of the Pull Request
This PR removes title bar controls from tab navigation, solving one of
hidden tab stops (the other being #40637).
Affected apps:
- Command Palette - Settings
- Environment Variables
- File Locksmith
- Hosts File Editor
- Registry Preview
- Settings (the search box in the title bar is still tab navigable)
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [x] Closes: #41944
- [ ] **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
All apps were manually tests, by pressing tab and shift + tab.
---------
Co-authored-by: Niels Laute <niels.laute@live.nl>
## Summary of the Pull Request
We have migrated `SubtleButtonStyle` to Windows App SDK, so now that we
migrated to 1.8 we no longer need custom implementations and can just
refer to the built-in styles.
This PR:
- Removed custom SubtleButton styles
- Added the style to the pin button in Peek so it's more inline with the
Photos app design
## PR Checklist
- [ ] Closes: #xxx
- [ ] **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
<!-- 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
This PR updates all application manifest files across the PowerToys
codebase to use **PerMonitorV2** DPI awareness, ensuring optimal
high-DPI display support on modern Windows systems.
## Changes Made
Updated **12 manifest files** to include proper PerMonitorV2 DPI
awareness:
### Files with New DPI Support Added:
- `src/runner/PowerToys.exe.manifest` - Added complete DPI awareness
section
- `src/modules/awake/Awake/app.manifest` - Upgraded from basic
`dpiAware` to PerMonitorV2
### Files Upgraded from PerMonitor to PerMonitorV2:
- `src/modules/colorPicker/ColorPickerUI/App.manifest`
- `src/modules/MouseWithoutBorders/App/MouseWithoutBorders.exe.manifest`
### Files Enhanced for Consistency:
- `src/modules/ShortcutGuide/ShortcutGuide/ShortcutGuide.exe.manifest`
- `src/modules/ZoomIt/ZoomIt/Zoomit.exe.manifest`
- All 5 cmdpal extension manifests
## Technical Implementation
All manifests now use the standardized format that provides:
1. **PerMonitorV2** as the primary DPI awareness mode for Windows 10
Anniversary Update and later
3. **`true/PM`** for backward compatibility with pre-Windows 10 systems
```xml
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
</windowsSettings>
</application>
```
## Screenshot for comparision:
Before:

After:

---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Windows Command Palette ("CmdPal") is the next iteration of PowerToys Run. With extensibility at its core, the Command Palette is your one-stop launcher to start _anything_.
By default, CmdPal is bound to <kbd>Win+Alt+Space</kbd>.


----
This brings the current preview version of CmdPal into the upstream PowerToys repo. There are still lots of bugs to work out, but it's reached the state we're ready to start sharing it with the world. From here, we can further collaborate with the community on the features that are important, and ensuring that we've got a most robust API to enable developers to build whatever extensions they want.
Most of the built-in PT Run modules have already been ported to CmdPal's extension API. Those include:
* Installed apps
* Shell commands
* File search (powered by the indexer)
* Windows Registry search
* Web search
* Windows Terminal Profiles
* Windows Services
* Windows settings
There are a couple new extensions built-in
* You can now search for packages on `winget` and install them right from the palette. This also powers searching for extensions for the palette
* The calculator has an entirely new implementation. This is currently less feature complete than the original PT Run one - we're looking forward to updating it to be more complete for future ingestion in Windows
* "Bookmarks" allow you to save shortcuts to files, folders, and webpages as top-level commands in the palette.
We've got a bunch of other samples too, in this repo and elsewhere
### PowerToys specific notes
CmdPal will eventually graduate out of PowerToys to live as its own application, which is why it's implemented just a little differently than most other modules. Enabling CmdPal will install its `msix` package.
The CI was minorly changed to support CmdPal version numbers independent of PowerToys itself. It doesn't make sense for us to start CmdPal at v0.90, and in the future, we want to be able to rev CmdPal independently of PT itself.
Closes#3200, closes#3600, closes#7770, closes#34273, closes#36471, closes#20976, closes#14495
-----
TODOs et al
**Blocking:**
- [ ] Images and descriptions in Settings and OOBE need to be properly defined, as mentioned before
- [ ] Niels is on it
- [x] Doesn't start properly from PowerToys unless the fix PR is merged.
- https://github.com/zadjii-msft/PowerToys/pull/556 merged
- [x] I seem to lose focus a lot when I press on some limits, like between the search bar and the results.
- This is https://github.com/zadjii-msft/PowerToys/issues/427
- [x] Turned off an extension like Calculator and it was still working.
- Need to get rid of that toggle, it doesn't do anything currently
- [x] `ListViewModel.<FetchItems>` crash
- Pretty confident that was fixed in https://github.com/zadjii-msft/PowerToys/pull/553
**Not blocking / improvements:**
- Show the shortcut through settings, as mentioned before, or create a button that would open CmdPalette settings.
- When PowerToys starts, CmdPalette is always shown if enabled. That's weird when just starting PowerToys/ logging in to the computer with PowerToys auto-start activated. I think this should at least be a setting.
- Needing to double press a result for it to do the default action seems quirky. If one is already selected, I think just pressing should be enough for it to do the action.
- This is currently a setting, though we're thinking of changing the setting even more: https://github.com/zadjii-msft/PowerToys/issues/392
- There's no URI extension. Was surprised when typing a URL that it only proposed a web search.
- [x] There's no System commands extension. Was expecting to be able to quickly restart the computer by typing restart but it wasn't there.
- This is in PR https://github.com/zadjii-msft/PowerToys/pull/452
---------
Co-authored-by: joadoumie <98557455+joadoumie@users.noreply.github.com>
Co-authored-by: Jordi Adoumie <jordiadoumie@microsoft.com>
Co-authored-by: Mike Griese <zadjii@gmail.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Michael Hawker <24302614+michael-hawker@users.noreply.github.com>
Co-authored-by: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com>
Co-authored-by: Seraphima <zykovas91@gmail.com>
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Kristen Schau <47155823+krschau@users.noreply.github.com>
Co-authored-by: Eric Johnson <ericjohnson327@gmail.com>
Co-authored-by: Ethan Fang <ethanfang@microsoft.com>
Co-authored-by: Yu Leng (from Dev Box) <yuleng@microsoft.com>
Co-authored-by: Clint Rutkas <clint@rutkas.com>
* Fix borders for windows in the Settings UI
* Fix HOSTS window
* Fix Advanced Paste
* Fix Environment Variables
* Fix File Locksmith
* Fix Peek, with a caveat
* Fix Registry Preview
* Remove unused imports
* Clean up imports in OobeShellPage
* Move OSVersionHelper from Common.UI up into ManagedCommon
* [Deps] Upgrade Framework Libraries to .NET 9 RC2
* [Common][Build] Update TFM to NET9
* [FileLocksmith][Build] Update TFM to NET9 in Publish Profile
* [PreviewPane][Build] Update TFM to NET9 in Publish Profile
* [PTRun][Build] Update TFM to NET9 in Publish Profile
* [Settings][Build] Update TFM to NET9 in Publish Profile
* [MouseWithoutBorders][Analyzers] Resolve WFO1000 by configuring Designer Serialization Visibility
* [Deps] Update Microsoft.CodeAnalysis.NetAnalyzers
* [Analyzers] Set CA1859,CA2263,CA2022 to be excluded from error
* [MouseWithoutBorders] Use System.Threading.Lock to lock instead of object instance
* [ColorPicker] Use System.Threading.Lock to lock instead of object instance
* [AdvancedPaste] Use System.Threading.Lock to lock instead of object instance
* [TextExtractor] Use System.Threading.Lock to lock instead of object instance
* [Hosts] Use System.Threading.Lock to lock instead of object instance
* [MouseJump] Use System.Threading.Lock to lock instead of object instance
* [PTRun] Use System.Threading.Lock to lock instead of object instance
* [Wox] Use System.Threading.Lock to lock instead of object instance
* [Peek] Use System.Threading.Lock to lock instead of object instance
* [PowerAccent] Use System.Threading.Lock to lock instead of object instance
* [Settings] Use System.Threading.Lock to lock instead of object instance
* [Deps] Update NOTICE.md
* [CI] Update .NET version step to target 9.0
* [Build] Attempt to add manual trigger for using Visual Studio Preview for building
* [Build] Fix variable typo
* [Build][Temporary] set to use preview builds
* [Build] Add missing parameters
* [Build][Temporary] directly hardcode preview image
* [Build][Temporary] Trying ImageOverride
* [Build] Revert hardcode and use ImageOverride
* [Build] Add env var for adding prerelease argument for vswhere
* [Build] Update VCToolsVersion script to use env var to optionally add prerelease version checking
* [Build] Remove unneeded parameter
* [Build] Re-add parameter in all the right places
* [CI][Build] Add NoWarn NU5104 when building with VS Preview
* [Deps] Update to stable .NET 9 packages
* [Deps] Update NOTICE.md
* Everything is WPF and WindowsForms now to fix .NET 9 dependency conflicts
* Ensure .NET 9 SDK for tests too
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
* upgrade time!
* looks like two got orphaned :/
* Fix Measure Tool window style to remove title bar and borders
* Fix spellchecker
* was tab :(
* Update src/modules/MeasureTool/MeasureToolUI/MeasureToolXAML/MainWindow.xaml.cs
Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
* added comment about CsWinRT upgrade to verify on next upgrade
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
Co-authored-by: Dustin L. Howett <duhowett@microsoft.com>
<!-- 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
more breaking out stuff
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] **Closes:** #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If 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
<!-- 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
learning from https://github.com/microsoft/PowerToys/pull/34177/ that
solution dir could have rippling effects from other the dart pipeline.
This shifts those over to relative paths
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] **Closes:** #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If 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
## Summary of the Pull Request
Removes all C++/CX code, replacing it with C++/WinRT.
## Detailed Description of the Pull Request / Additional comments
Removes all C++/CX code.
Renames interop namespaces to be better consumed by CsWinRT.
Standardizes all projects on net8.0-windows10.0.20348.0, which is a
requirement for C++/WinRT usage.
FileLocksmithLibInterop brought to stdcpplatest and static analysis
errors were corrected.
Removed now unneeded string conversion code from
FileLocksmithLibInterop.
Changed interop KeyboardHook to use a single hook across all instances.
Required because on C++/WinRT we don't have the .NET runtime to bind a
object instance to a delegate and be able to pass it to a C function
pointer argument (still no idea why this worked correctly on C++/CX to
be honest). This change actually makes us create less low level keyboard
hooks.
Changed some code that depended on arrays since WinRT/C++ returns null
instead of an empty array through the interface.
## Validation Steps Performed
Built and tested runtime.
<!-- 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
First step on self containment. Once #34055 goes in, this number of
modified files should go way down.
Common.Selfcontained.props is the new item and
src/dsc/PowerToys.Settings.DSC.Schema.Generator/PowerToys.Settings.DSC.Schema.Generator.csproj
would be an example of a file that had SelfContained set to true prior
and now that logic was moved into a single file.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] **Closes:** #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If 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
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
<!-- 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
In prep for WinAppSdk, trying to consolidate items. Version.prop is one
of the first items.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] **Closes:** #xxx
- [ ] **Communication:** I've discussed this with core contributors
already. If 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
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
## Summary of the Pull Request
To prevent a crash, show the individual files of a process within a
modal dialog rather than as inline text. Please see the linked issue for
more details.
## Detailed Description of the Pull Request / Additional comments
- Removed inline list of process files.
- Added "Show files" button to expander to show list of process files as
a modal dialog. This dialog has the same design as the one used to
display the list of selected folders within the same application.
- Added unhandled exception hander to application similar to our other
applications.


* [FileLocksmith] Add scroll to path in Selected file paths UI
* [FileLocksmith] Make path wrap into multiple lines in Selected paths UI
Earlier, the path was getting truncated within a single line.
Fixes microsoft#26489
* Upgraded projects to target .NET 8
* Updated .NET runtime package targets to use latest .NET 8 build
* Updated PowerToys Interop to target .NET 8
* Switch to use ArgumentNullException.ThrowIfNull
* ArgumentNullException.ThrowIfNull for CropAndLockViewModel
* Switching to ObjectDisposedException.ThrowIf
* Upgrade System.ComponentModel.Composition to 8.0
* ArgumentNullException.ThrowIfNull in Helper
* Switch to StartsWith using StringComparison.Ordinal
* Disabled CA1859, CA1716, SYSLIB1096 analyzers
* Update RIDs to reflect breaking changes in .NET 8
* Updated Microsoft NuGet packages to RC1
* Updated Analyzer package to latest .NET 8 preview package
* CA1854: Use TryGetValue instead of ContainsKey
* [Build] Update TFM to .NET 8 for publish profiles
* [Analyzers] Remove CA1309, CA1860-CA1865, CA1869, CA2208 from warning.
* [Analyzers] Fix for C26495
* [Analyzers] Disable CS1615, CS9191
* [CI] Target .NET 8 in YAML
* [CI] Add .NET preview version flag temporarily.
* [FileLocksmith] Update TFM to .NET 8
* [CI] Switch to preview agent
* [CI] Update NOTICE.md
* [CI] Update Release to target .NET 8 and use Preview agent
* [Analyzers] Disable CA1854
* Fix typo
* Updated Microsoft.CodeAnalysis.NetAnalyzers to latest preview
Updated packages to rc2
* [Analyzers][CPP] Turn off warning for 5271
* [Analyzers][CPP] Turn off warning for 26493
* [KeyboardListener] Add mutex include to resolve error
* [PT Run][Folder] Use static SearchValues to resolve CA1870
* [PowerLauncher] Fix TryGetValue
* [MouseJumpSettings] Use ArgumentNullException.ThrowIfNull
* [Build] Disable parallel dotnet tool restore
* [Build] No cache of dotnet tool packages
* [Build] Temporarily move .NET 8 SDK task before XAML formatting
* [Build][Temp] Try using .NET 7 prior to XAML formatting and then switch to .NET 8 after
* [Build] Use .NET 6 for XAML Styler
* [CI] Updated NOTICE.md
* [FancyZones] Update TFM to .NET 8
* [EnvVar] Update TFM to .NET 8 and update RID
* [EnvVar] Use ArgumentNullException.ThrowIfNull
* [Dev] Updated packages to .NET 8 RTM version
* [Dev] Updated Microsoft.CodeAnalysis.NetAnalyzers to latest
* [CI] Updated NOTICE.md with latest package versions
* Fix new utility target fameworks and runtimeids
* Don't use preview images anymore
* [CI] Add script to update VCToolsVersion environment variable
* [CI] Add Step to Verify VCToolsVersion
* [CI] Use latest flag for vswhere to set proper VCToolsVersion
* Add VCToolsVersion checking to release.yml
* Remove net publishing from local/ PR CI builds
* Revert "Remove net publishing from local/ PR CI builds"
This reverts commit f469778996.
* Only publish necessary projects
* Add verbosity to release pipelines builds of PowerTOys
* Set VCToolsVersion for publish.cmd when called from installer
* [Installer] Moved project publish logic to MSBuild Task
* [CI] Revert using publish.cmd
* [CI] Set VCToolsVersion and unset ClearDevCommandPromptEnvVars property
* Installer publishes for x64 too
* Revert "Add verbosity to release pipelines builds of PowerTOys"
This reverts commit 654d4a7f78.
* [Dev] Update CodeAnalysis library to non-preview package
* Remove unneeded warning removal
* Fix Notice.md
* Rename VCToolsVersion file and task name
* Remove unneeded mutex header include
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
* Use XamlStyler to check XAML formatting
* fix spellcheck
* fix
* format XAML FLS, Hosts, ImageResizer, MeasureTool, PowerRename
* format XAML Peek
* exclude settings XAML and make CI pass
* doc
* Update to WASDK 1.4
* Remove redundant title bar styles.
* Update notice
* Update C++ projects as well
* Upgrade CppWinRT too
* Add exception to WASDK file version set to 1.0.0.0
---------
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
* Flatten everything and succeed build
* Figure out Settings assets
* Remove UseCommonOutputDirectory tag
* Proper settings app path
* [VCM] Fix assets location
* Fix some runtime paths
* [RegistryPreview]Use MRTCore specific pri file
* [Hosts]Use MRTCore specific pri file
* [Settings]Use MRTCore specific pri file
* [Peek]Use MRTCore specific pri file
* [FileLocksmith]Use MRTCore specific pri file
* [ScreenRuler]Use MRTCore specific pri file
* [PowerRename]Use MRTCore specific pri file
* [Peek]Move assets to own folder
* [FileLocksmith] Use own Assets path
* [Hosts]Use own assets folder
* [PowerRename]Use own assets dir
* [MeasureTool] Use its own assets folder
* [ImageResizer]Use its own assets path
* Fix spellcheck
* Fix tab instead of space in project files
* Normalize target frameworks and platforms
* Remove WINRT_NO_MAKE_DETECTION flag. No longer needed?
* Fix AOT and Hosts locations
* Fix Dll version differences on dependency
* Add Common.UI.csproj as refernce to fix dll versions
* Update ControlzEx to normalize dll versions
* Update System.Management version to 7.0.2
* Add GPOWrapper to Registry Preview to fix dll versions
* [PTRun]Reference Microsoft.Extensions.Hosting to fix dll versions
* Fix remaining output paths / dll version conflicts
* [KeyboardManager]Executables still on their own directories
* Fix Monaco paths
* WinAppSDK apps get to play outside again
* Enable VCM settings again
* Fix KBM Editor path again
* [Monaco]Set to own Assets dir
* Fix installer preamble; Fix publish. remove unneeded publishes
* Remove Hardlink functions
* Installer builds again (still needs work to work)
* Readd Monaco to spellcheck excludes
* Fix spellcheck and call publish.cmd again
* [Installer] Remove components that don't need own dirs
* [Installer] Refactor Power Launcher
* [Installer] Refactor Color Picker
* [Installer] Refactor Monaco assets
* [Installer]Generate File script no longer needs to remove files
* [Installer]Refactor FileLocksmith
* [Installer] Refactor Hosts
* [Installer]Refactor Image Resizer
* [Installer]Refactor MouseUtils
* [Installer]Refactor MWB
* [Installer]Refactor MeasureTool
* [Installer]Refactor Peek
* [Installer]Refactor PowerRename and registry fixes
* [Installer]Refactor RegistryPreview
* [Installer]Refactor ShortcutGuide
* [Installer]Refactor Settings
* [Installer]Clean up some unused stuff
* [Installer]Clean up stuff for user install
* [Installer]Fix WinUi3Apps wxs
* [Installer]Fix misplaced folders
* [Installer]Move x86 VCM dll to right path
* Fix monaco language list location
* [Installer]Fix VCM directory reference
* [CI]Fix signing
* [Installer] Fix resources folder for release CI
* [ci]Looks like we still ship NLog on PowerToys Run
* [Settings]Add dependency to avoid dll collision with Experimentation
* [RegistryPreview]Move XAML files to own path
* [RegistryPreview]Fix app icon
* [Hosts]Move XAML files to their own path
* [FileLocksmith]Move XAML files to their own path
* [Peek]Move XAML files to own path
* [ScreenRuler]Move XAML files to its own path
* [Settings]Move XAML to its own path
* [ColorPicker]Move Resources to Assets
* [ShortcutGuide]Move svgs to own Assets path
* [Awake]Move images to assets path
* [Runner]Remove debug checks for PowerToys Run assets
* [PTRun]Move images to its own assets path
* [ImageResizer]Icon for context menu on own assets path
* [PowerRename]Move ico to its own path
* Remove unneeded intermediary directories
* Remove further int dirs
* Move tests to its own output path
* Fix spellcheck
* spellcheck: remove warnings
* [CppAnalyzers]Ignore rule in a tool
* [CI]Check if all deps.json files reference same versions
* fix spellcheck
* [ci]Fix task identation
* [ci]Add script to guard against asset conflicts
* [ci]Add more deps.json audit steps in the release build
* Add xbf to spellcheck expects
* Fix typo in asset conflict check scripts
* Fix some more dependency conflicts
* Downgrade CsWinRT to have the same dll version as sdk
* [ci]Do a recursive check for every deps.json
* Fix spellcheck error inside comment
* [ci]Fix asset script error
* [ci]Name deps.json verify tasks a bit better
* [ci]Improve deps json verify script output
* [ci]Update WinRT version to the same running in CI
* Also upgrade CsWinRT in NOTICE.MD
* [PowerRename]Move XAML files to own path
* [Common]Fix Settings executable path
* [ci]Verify there's no xbf files in app directories
* [installer]Fix firewall path
* [Monaco]Move new files to their proper assets path
* [Monaco]Fix paths for new files after merge
* [Feedback]Removed unneeded build conditions
* [Feedback]Clear vcxproj direct reference to frameworks
* [Feedback]RunPlugins name to hold PTRun plugins
* [Feedback]Remove unneeded foreach
* [Feedback]Shortcut Guide svgs with ** in project file
* [Feedback]Fix spellcheck
* Update projects to .NET 7
* Updated packages to 7.0-rc1
* [ColorPicker] Wrap WM_KEYUP param in unchecked context
* [PTRun][OneNote] Added a NoWarn to CS8981
* [MeasureTool] Wrap buffer in wstring_view in SetClipBoardToText
* Target .NET 7 for PowerToys.Interop
* Update publish profiles
* Removed System.Text.Json.dll from Product.wxs since it's included in .NET 7
* Use .NET 7 in CI
* Removed individual CodeAnalysis package from projects
* Updated CodeAnalysis package in Directory.Build.props
* Updated NuGet packages to latest 7.0 rc2
* Fix merge mistake with Settings.UI.Library project
* Updated installer with .NET 7 RC2 install
* [GPOWrapper] Updated GPOWrapperProjection to .NET 7
* [FileLockSmith] Updated to .NET 7
* [FileLocksmith] Update Interop to .NET 7
* Upgrade .NET 7 specific libraries to GA version
* [PowerToysSetup] Updated .NET 7 urls to GA
* [CI] removed .NET 7 SDK preview version from UseDotNet task
* [PowerToysSetup] Update HasDotnet variable name
* [PowerToysInterop] Downgrade target back to .NET 6
* [FileLockSmith] Downgrade Interop library back to .NET 6
* Revert "[FileLockSmith] Downgrade Interop library back to .NET 6"
This reverts commit 356ad048e3.
* Revert "[PowerToysInterop] Downgrade target back to .NET 6"
This reverts commit 74dbcfdefe.
* [Analyzers][CPP] Disable warning for 4679 caused by .NET 7 in C++/CLI
* [CI] Set maximum cpu count to 2 for PowerToys.sln build
* [CI] Set maximumCpuCount to false in hopes of arm64 working
* Changed .NET 7 runtime display name
* [ci] Use .net 7 sdk
* [release] Move NuGet feed from CDPx to DART
Since the release pipeline is run in the DART Azure DevOps project, we
no longer need to authenticate against it. The build agent will be
running with a token that allows access.
* restore nuget.config
* We should still authenticate against this org, not a specific feed
* rename the feed
* whoa whoa whoa okay
* [ci]Conditionally add labs package except in Dart (#22294)
* Propagate Jaime's change
Co-authored-by: Jaime Bernardo <jaime@janeasystems.com>
* [FileLocksmith]Query system processes if elevated
* Show warning if user is a system user
* Make text in the file list selectable
* Update src/modules/FileLocksmith/FileLocksmithLibInterop/NtdllExtensions.cpp
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
* Trim \0 no longer required
* Correct elevation detection logic
* Use theme approppriate colors
Co-authored-by: Andrey Nekrasov <yuyoyuppe@users.noreply.github.com>
* Adding icon to project
* Adding icon to Settings
* Reference the right file
* Fix icon on Windows 10
* Add new Icon files to the installer
* Fix installer.