2021-12-17 18:15:31 -08:00
|
|
|
{
|
|
|
|
|
"Version": "1.0.0",
|
|
|
|
|
"UseMinimatch": false,
|
|
|
|
|
"SignBatches": [
|
|
|
|
|
{
|
2025-06-13 12:27:53 +08:00
|
|
|
"MatchedPath": [
|
|
|
|
|
"*.resources.dll",
|
|
|
|
|
"WinUI3Apps\\Assets\\Settings\\Scripts\\*.ps1",
|
|
|
|
|
|
|
|
|
|
"PowerToys.ActionRunner.exe",
|
|
|
|
|
"PowerToys.Update.exe",
|
|
|
|
|
"PowerToys.BackgroundActivatorDLL.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.exe",
|
|
|
|
|
"PowerToys.FilePreviewCommon.dll",
|
|
|
|
|
"PowerToys.Interop.dll",
|
|
|
|
|
"Tools\\PowerToys.BugReportTool.exe",
|
|
|
|
|
"StylesReportTool\\PowerToys.StylesReportTool.exe",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"CalculatorEngineCommon.dll",
|
2026-02-13 22:26:37 +08:00
|
|
|
"PowerToys.Common.UI.Controls.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.ManagedTelemetry.dll",
|
|
|
|
|
"PowerToys.ManagedCommon.dll",
|
2025-06-21 20:09:56 +08:00
|
|
|
"PowerToys.ManagedCsWin32.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.Common.UI.dll",
|
|
|
|
|
"PowerToys.Settings.UI.Lib.dll",
|
|
|
|
|
"PowerToys.GPOWrapper.dll",
|
|
|
|
|
"PowerToys.GPOWrapperProjection.dll",
|
|
|
|
|
"PowerToys.AllExperiments.dll",
|
2025-11-05 16:13:55 +08:00
|
|
|
"LanguageModelProvider.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
Setting search (#41285)
<!-- 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
<!-- Please review the items on the PR checklist before submitting-->
## 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
- [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
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Localized search:
<img width="1576" height="480" alt="image"
src="https://github.com/user-attachments/assets/dd6e5e9f-419b-40b1-b796-f0799481ecfc"
/>
## AI summary
This pull request introduces infrastructure and code to support search
functionality for PowerToys settings, including a new search index
specification, a dedicated search library, and updates to the solution
configuration. The main changes are the addition of a spec describing
how settings should be indexed and navigated, the creation of a new
`Common.Search` project with a fuzz search implementation, and updates
to the solution file to include these new components.
**Settings Search Feature Implementation**
* Documentation:
* Added a detailed specification (`settings-search.md`) describing the
structure of PowerToys settings pages, how to index settings, navigation
logic, runtime search, result grouping, build-time indexing strategy,
and corner cases.
* New Search Library:
* Added the new `Common.Search` project to the solution, including its
project file and implementation of a fuzz search service
(`FuzzSearchService<T>`), match options, match results, and search
precision scoring.
[[1]](diffhunk://#diff-ddc06fa41e4e723e54181b0cb85cdd00f57f75725d51ceefa242d4d651a9a363R1-R8)
[[2]](diffhunk://#diff-1a2ca29fc33bcccf338a7843a040ca2c31ba821e8cab7064fab0dbb1224d454cR1-R39)
[[3]](diffhunk://#diff-242764d948b795f39653a84d9b6bfcdc52730100deab2e3a0995be95bb8e7868R1-R10)
[[4]](diffhunk://#diff-61e525491ed916ebd65dabb66dd4f5dc720320d7e295ef1e0bd6d506ea0f7df6R1-R67)
[[5]](diffhunk://#diff-a775f6de2e8d42982829b4161668f49dedbbd9dcbb05ce20003de7e62275c57aR1-R12)
* Solution Configuration:
* Updated `PowerToys.sln` to include `Common.Search` and
`Settings.UI.XamlIndexBuilder` projects, and configured their build
settings for various platforms and mapped project dependencies.
[[1]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R714-R716)
[[2]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R2704-R2727)
[[3]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R2889)
[[4]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R3157-R3158)
**Spell-check Dictionary Updates**
* Added new terms related to navigation and settings UI components (such
as `Navigatable`, `NavigatablePage`, `settingscard`, `Tru`, `tweakable`)
to the spell-check dictionary to support the new search and indexing
features.
[[1]](diffhunk://#diff-5dcab162c1b233a49973ae010f2b88c7ec4844382abd705e6154685e62bd5c4dR1020-R1021)
[[2]](diffhunk://#diff-5dcab162c1b233a49973ae010f2b88c7ec4844382abd705e6154685e62bd5c4dR1498)
[[3]](diffhunk://#diff-5dcab162c1b233a49973ae010f2b88c7ec4844382abd705e6154685e62bd5c4dR1755-R1761)
---------
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
Co-authored-by: Gordon Lam <73506701+yeelam-gordon@users.noreply.github.com>
2025-08-25 21:23:07 +08:00
|
|
|
"Common.Search.dll",
|
|
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.AlwaysOnTop.exe",
|
|
|
|
|
"PowerToys.AlwaysOnTopModuleInterface.dll",
|
2026-07-30 22:42:05 -07:00
|
|
|
"PowerToys.AltWindowCycle.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
|
|
|
|
"PowerToys.CmdNotFoundModuleInterface.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
|
|
|
|
|
"PowerToys.ColorPicker.dll",
|
|
|
|
|
"PowerToys.ColorPickerUI.dll",
|
|
|
|
|
"PowerToys.ColorPickerUI.exe",
|
|
|
|
|
|
|
|
|
|
"PowerToys.CropAndLockModuleInterface.dll",
|
|
|
|
|
"PowerToys.CropAndLock.exe",
|
|
|
|
|
|
|
|
|
|
"PowerToys.PowerOCRModuleInterface.dll",
|
|
|
|
|
"PowerToys.PowerOCR.dll",
|
|
|
|
|
"PowerToys.PowerOCR.exe",
|
|
|
|
|
|
|
|
|
|
"PowerToys.AdvancedPasteModuleInterface.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.AdvancedPaste.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.AdvancedPaste.dll",
|
|
|
|
|
|
|
|
|
|
"PowerToys.AwakeModuleInterface.dll",
|
|
|
|
|
"PowerToys.Awake.exe",
|
|
|
|
|
"PowerToys.Awake.dll",
|
|
|
|
|
|
|
|
|
|
"PowerToys.FancyZonesEditor.exe",
|
|
|
|
|
"PowerToys.FancyZonesEditor.dll",
|
|
|
|
|
"PowerToys.FancyZonesEditorCommon.dll",
|
|
|
|
|
"PowerToys.FancyZonesModuleInterface.dll",
|
|
|
|
|
"PowerToys.FancyZones.exe",
|
Add FancyZones CLI for command-line layout management (#44078)
<!-- 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
Adds a new command-line interface (CLI) tool for FancyZones, enabling
users and automation scripts to manage window layouts without the GUI.
**Commands:**
| Command | Aliases | Description |
|---------|---------|-------------|
| `help` | | Displays general help information for all commands |
| `open-editor` | `editor`, `e` | Launch FancyZones layout editor |
| `get-monitors` | `monitors`, `m` | List all monitors and their
properties |
| `get-layouts` | `layouts`, `ls` | List all available layouts with
ASCII art preview |
| `get-active-layout` | `active`, `a` | Show currently active layout |
| `set-layout <uuid>` | `set`, `s` | Apply layout by UUID or template
name |
| `open-settings` | `settings` | Open FancyZones settings page |
| `get-hotkeys` | `hotkeys`, `hk` | List all layout hotkeys |
| `set-hotkey <key> <uuid>` | `shk` | Assign hotkey (0-9) to custom
layout |
| `remove-hotkey <key>` | `rhk` | Remove hotkey assignment |
**Key Capabilities:**
- ASCII art visualization of layouts (grid, focus, priority-grid,
canvas)
- Support for both template layouts and custom layouts
- Monitor-specific layout targeting (`--monitor N` or `--all`)
- Real-time notification to FancyZones via Windows messages
- Native AOT compilation support for fast startup
### Example Usage
```bash
# List all layouts with visual previews
FancyZonesCLI.exe ls
# Apply "columns" template to all monitors
FancyZonesCLI.exe s columns --all
# Set custom layout on monitor 2
FancyZonesCLI.exe s {uuid} --monitor 2
# Assign hotkey Win+Ctrl+Alt+3 to a layout
FancyZonesCLI.exe shk 3 {uuid}
```
https://github.com/user-attachments/assets/2b141399-a4ca-4f64-8750-f123b7e0fea7
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] 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
2025-12-09 10:13:48 +08:00
|
|
|
"FancyZonesCLI.exe",
|
|
|
|
|
"FancyZonesCLI.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
2026-08-14 14:32:27 +08:00
|
|
|
"CliShim\\PowerToys.CliShim.exe",
|
|
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.GcodePreviewHandler.dll",
|
|
|
|
|
"PowerToys.GcodePreviewHandler.exe",
|
|
|
|
|
"PowerToys.GcodePreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.GcodeThumbnailProvider.dll",
|
|
|
|
|
"PowerToys.GcodeThumbnailProvider.exe",
|
|
|
|
|
"PowerToys.GcodeThumbnailProviderCpp.dll",
|
2025-07-10 10:20:30 +01:00
|
|
|
"PowerToys.BgcodePreviewHandler.dll",
|
|
|
|
|
"PowerToys.BgcodePreviewHandler.exe",
|
|
|
|
|
"PowerToys.BgcodePreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.BgcodeThumbnailProvider.dll",
|
|
|
|
|
"PowerToys.BgcodeThumbnailProvider.exe",
|
|
|
|
|
"PowerToys.BgcodeThumbnailProviderCpp.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.ManagedTelemetry.dll",
|
|
|
|
|
"PowerToys.MarkdownPreviewHandler.dll",
|
|
|
|
|
"PowerToys.MarkdownPreviewHandler.exe",
|
|
|
|
|
"PowerToys.MarkdownPreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.MonacoPreviewHandler.dll",
|
|
|
|
|
"PowerToys.MonacoPreviewHandler.exe",
|
|
|
|
|
"PowerToys.MonacoPreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.PdfPreviewHandler.dll",
|
|
|
|
|
"PowerToys.PdfPreviewHandler.exe",
|
|
|
|
|
"PowerToys.PdfPreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.PdfThumbnailProvider.dll",
|
|
|
|
|
"PowerToys.PdfThumbnailProvider.exe",
|
|
|
|
|
"PowerToys.PdfThumbnailProviderCpp.dll",
|
|
|
|
|
"PowerToys.powerpreview.dll",
|
|
|
|
|
"PowerToys.PreviewHandlerCommon.dll",
|
|
|
|
|
"PowerToys.QoiPreviewHandler.dll",
|
|
|
|
|
"PowerToys.QoiPreviewHandler.exe",
|
|
|
|
|
"PowerToys.QoiPreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.QoiThumbnailProvider.dll",
|
|
|
|
|
"PowerToys.QoiThumbnailProvider.exe",
|
|
|
|
|
"PowerToys.QoiThumbnailProviderCpp.dll",
|
|
|
|
|
"PowerToys.StlThumbnailProvider.dll",
|
|
|
|
|
"PowerToys.StlThumbnailProvider.exe",
|
|
|
|
|
"PowerToys.StlThumbnailProviderCpp.dll",
|
|
|
|
|
"PowerToys.SvgPreviewHandler.dll",
|
|
|
|
|
"PowerToys.SvgPreviewHandler.exe",
|
|
|
|
|
"PowerToys.SvgPreviewHandlerCpp.dll",
|
|
|
|
|
"PowerToys.SvgThumbnailProvider.dll",
|
|
|
|
|
"PowerToys.SvgThumbnailProvider.exe",
|
|
|
|
|
"PowerToys.SvgThumbnailProviderCpp.dll",
|
2026-03-04 15:46:42 -05:00
|
|
|
"PowerToys.KeyboardManager.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
2026-03-04 15:46:42 -05:00
|
|
|
"KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
|
2026-03-08 08:56:23 +08:00
|
|
|
"WinUI3Apps\\PowerToys.KeyboardManagerEditorUI.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.KeyboardManagerEditorUI.dll",
|
2026-03-04 15:46:42 -05:00
|
|
|
"KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
|
|
|
|
|
"PowerToys.KeyboardManagerEditorLibraryWrapper.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
"WinUI3Apps\\PowerToys.HostsModuleInterface.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.HostsUILib.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.Hosts.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.Hosts.exe",
|
|
|
|
|
|
|
|
|
|
"WinUI3Apps\\PowerToys.FileLocksmithLib.Interop.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.FileLocksmithExt.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.FileLocksmithUI.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.FileLocksmithUI.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.FileLocksmithContextMenu.dll",
|
|
|
|
|
"FileLocksmithContextMenuPackage.msix",
|
2026-01-06 15:59:37 +08:00
|
|
|
"FileLocksmithCLI.exe",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
|
|
|
|
"WinUI3Apps\\Peek.Common.dll",
|
|
|
|
|
"WinUI3Apps\\Peek.FilePreviewer.dll",
|
|
|
|
|
"WinUI3Apps\\Powertoys.Peek.UI.dll",
|
|
|
|
|
"WinUI3Apps\\Powertoys.Peek.UI.exe",
|
|
|
|
|
"WinUI3Apps\\Powertoys.Peek.dll",
|
|
|
|
|
|
fix sign issue (#44609)
<!-- 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 pull request introduces updates to the build pipeline and resource
configuration, primarily to support new modules and improve versioning
information for the File Locksmith CLI.
**Pipeline configuration updates:**
* Added new WinUI3 application binaries (`PowerToys.QuickAccess.dll`,
`PowerToys.QuickAccess.exe`, and `PowerToys.Settings.UI.Controls.dll`)
to the ESRP signing pipeline, ensuring these modules are properly signed
during the build process.
**Resource and versioning improvements:**
* Updated the resource file for `FileLocksmithCLI` to include version
information and metadata (such as company name, file description, and
product version) by referencing the shared version header. This improves
traceability and consistency of version details in the executable.
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] Closes: #yyy (add separate lines for additional resolved
issues) -->
- [x] **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
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
2026-01-08 18:45:46 +08:00
|
|
|
"WinUI3Apps\\PowerToys.QuickAccess.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.QuickAccess.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.Settings.UI.Controls.dll",
|
|
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"WinUI3Apps\\PowerToys.EnvironmentVariablesModuleInterface.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.EnvironmentVariablesUILib.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.EnvironmentVariables.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.EnvironmentVariables.exe",
|
|
|
|
|
|
2026-04-01 16:22:33 +08:00
|
|
|
"WinUI3Apps\\PowerToys.ImageResizer.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ImageResizer.dll",
|
Add standard CLI support for Image Resizer (#44287)
<!-- 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
Adds a dedicated command-line interface (CLI) executable for Image
Resizer (PowerToys.ImageResizerCLI.exe)
## Command
`PowerToys.ImageResizerCLI.exe [options] [files...]`
## Options (High Level)
| Option (aliases) | Description |
|-----------------|-------------|
| `--help` | Show help |
| `--show-config` | Print current effective configuration |
| `--destination`, `-d` | Output directory (optional) |
| `--width`, `-w` | Width |
| `--height`, `-h` | Height |
| `--unit`, `-u` | Unit (Pixel / Percent / Inch / Centimeter) |
| `--fit`, `-f` | Fit mode (Fill / Fit / Stretch) |
| `--size`, `-s` | Preset size index (supports `0` for Custom) |
| `--shrink-only` | Only shrink (do not enlarge) |
| `--replace` | Replace original |
| `--ignore-orientation` | Ignore EXIF orientation |
| `--remove-metadata` | Strip metadata |
| `--quality`, `-q` | JPEG quality (1–100) |
| `--keep-date-modified` | Preserve source last-write time |
| `--file-name` | Output filename format |
## Example usage
```
# Show help
PowerToys.ImageResizerCLI.exe --help
# Show current config
PowerToys.ImageResizerCLI.exe --show-config
# Resize with explicit dimensions
PowerToys.ImageResizerCLI.exe --width 800 --height 600 .\image.png
# Use preset size 0 (Custom) and output to a folder
PowerToys.ImageResizerCLI.exe --size 0 -d "C:\Output" .\photo.png
# Preserve source LastWriteTime
PowerToys.ImageResizerCLI.exe --width 800 --height 600 --keep-date-modified -d "C:\Output" .\image.png
```

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [ ] Closes: #xxx
<!-- - [ ] 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
- [x] **Tests:** Added/updated and all pass
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **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
2025-12-26 12:54:47 +08:00
|
|
|
"WinUI3Apps\\PowerToys.ImageResizerCLI.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ImageResizerCLI.dll",
|
2026-04-01 16:22:33 +08:00
|
|
|
"WinUI3Apps\\PowerToys.ImageResizerExt.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ImageResizerContextMenu.dll",
|
|
|
|
|
"WinUI3Apps\\ImageResizerContextMenuPackage.msix",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
[New Module] Light Switch (#41987)
<!-- 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 pull request introduces a new module called "Light Switch" which
allows users to automatically switch between light and dark mode on a
timer.

<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [x] Closes: #1331
- [x] **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
- [x] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] **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:
[#5867](https://github.com/MicrosoftDocs/windows-dev-docs-pr/pull/5867)
<!-- 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
### Known bugs:
- Default settings not saving correctly when switching modes
- Issue: Sometimes when you switch from one mode to another, they are
supposed to update with new defaults but sometimes this fails for the
second variable. Potentially has to do with accessing the settings file
while another chunk of code is still updating.
- Sometimes the system looks "glitched" when switching themes
### To do:
- [x] OOBE page and assets
- [x] Logic to disable the chart when no location has been selected
- [x] Localization
### How to and what to test
Grab the latest installer from the pipeline below for your architecture
and install PowerToys from there.
- Toggle theme shortcutSystem only, Apps only, Both system and apps
selected
- Does changing the values on the settings page update the settings
file? %LOCALAPPDATA%/Microsoft/PowerToys/LightSwitch/settings.json
- Manual mode: System only, Apps only, Both system and apps selected
- Sunrise modes: Are the times accurate?
- If you manage to let this run through sunset/rise does the theme
change?
- Set your theme to change within the next minute using manual mode and
set your device to sleepOpen your device and login once the time you set
has passed. --> Do your settings resync once the next minute ticks after
logging back into your device?
- Disable the service and ensure the tasks actually ends.
- While the module is disabled:
- Make sure the shortcut no longer works
- Make sure the last time you set doesn't trigger a theme change
- Bonus: Toggle GPO Configuration and make sure you are unable to enable
the module
---------
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-10-06 16:44:07 -04:00
|
|
|
"PowerToys.LightSwitchModuleInterface.dll",
|
|
|
|
|
"LightSwitchService\\PowerToys.LightSwitchService.exe",
|
|
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.KeyboardManager.dll",
|
|
|
|
|
"KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
|
|
|
|
|
"KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
|
|
|
|
|
"PowerToys.KeyboardManagerEditorLibraryWrapper.dll",
|
|
|
|
|
|
|
|
|
|
"PowerToys.Launcher.dll",
|
|
|
|
|
"PowerToys.PowerLauncher.dll",
|
|
|
|
|
"PowerToys.PowerLauncher.exe",
|
|
|
|
|
"PowerToys.PowerLauncher.Telemetry.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"Wox.Infrastructure.dll",
|
|
|
|
|
"Wox.Plugin.dll",
|
|
|
|
|
"RunPlugins\\Calculator\\Microsoft.PowerToys.Run.Plugin.Calculator.dll",
|
|
|
|
|
"RunPlugins\\Folder\\Microsoft.Plugin.Folder.dll",
|
|
|
|
|
"RunPlugins\\Indexer\\Microsoft.Plugin.Indexer.dll",
|
|
|
|
|
"RunPlugins\\OneNote\\Microsoft.PowerToys.Run.Plugin.OneNote.dll",
|
|
|
|
|
"RunPlugins\\History\\Microsoft.PowerToys.Run.Plugin.History.dll",
|
|
|
|
|
"RunPlugins\\PowerToys\\Microsoft.PowerToys.Run.Plugin.PowerToys.dll",
|
|
|
|
|
"RunPlugins\\Program\\Microsoft.Plugin.Program.dll",
|
|
|
|
|
"RunPlugins\\Registry\\Microsoft.PowerToys.Run.Plugin.Registry.dll",
|
|
|
|
|
"RunPlugins\\WindowsSettings\\Microsoft.PowerToys.Run.Plugin.WindowsSettings.dll",
|
|
|
|
|
"RunPlugins\\Shell\\Microsoft.Plugin.Shell.dll",
|
|
|
|
|
"RunPlugins\\Uri\\Microsoft.Plugin.Uri.dll",
|
|
|
|
|
"RunPlugins\\WindowWalker\\Microsoft.Plugin.WindowWalker.dll",
|
|
|
|
|
"RunPlugins\\UnitConverter\\Community.PowerToys.Run.Plugin.UnitConverter.dll",
|
|
|
|
|
"RunPlugins\\VSCodeWorkspaces\\Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll",
|
|
|
|
|
"RunPlugins\\Service\\Microsoft.PowerToys.Run.Plugin.Service.dll",
|
|
|
|
|
"RunPlugins\\System\\Microsoft.PowerToys.Run.Plugin.System.dll",
|
|
|
|
|
"RunPlugins\\TimeDate\\Microsoft.PowerToys.Run.Plugin.TimeDate.dll",
|
|
|
|
|
"RunPlugins\\ValueGenerator\\Community.PowerToys.Run.Plugin.ValueGenerator.dll",
|
|
|
|
|
"RunPlugins\\WebSearch\\Community.PowerToys.Run.Plugin.WebSearch.dll",
|
|
|
|
|
"RunPlugins\\WindowsTerminal\\Microsoft.PowerToys.Run.Plugin.WindowsTerminal.dll",
|
|
|
|
|
|
|
|
|
|
"WinUI3Apps\\PowerToys.MeasureToolModuleInterface.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.MeasureToolCore.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.MeasureToolUI.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.MeasureToolUI.exe",
|
|
|
|
|
|
|
|
|
|
"PowerToys.FindMyMouse.dll",
|
|
|
|
|
"PowerToys.MouseHighlighter.dll",
|
|
|
|
|
"PowerToys.MouseJump.dll",
|
|
|
|
|
"PowerToys.MouseJump.Common.dll",
|
2026-08-09 19:00:04 +08:00
|
|
|
"WinUI3Apps\\PowerToys.MouseJump.HotKeys.dll",
|
|
|
|
|
"PowerToys.MouseJump.Models.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.MouseJump.WinUI3.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.MouseJump.WinUI3.exe",
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.MousePointerCrosshairs.dll",
|
2025-11-05 03:28:25 -08:00
|
|
|
"PowerToys.CursorWrap.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
|
|
|
|
"PowerToys.MouseWithoutBorders.dll",
|
|
|
|
|
"PowerToys.MouseWithoutBorders.exe",
|
|
|
|
|
"PowerToys.MouseWithoutBordersModuleInterface.dll",
|
|
|
|
|
"PowerToys.MouseWithoutBordersService.dll",
|
|
|
|
|
"PowerToys.MouseWithoutBordersService.exe",
|
|
|
|
|
"PowerToys.MouseWithoutBordersHelper.dll",
|
|
|
|
|
"PowerToys.MouseWithoutBordersHelper.exe",
|
|
|
|
|
|
|
|
|
|
"WinUI3Apps\\PowerToys.NewPlus.ShellExtension.dll",
|
|
|
|
|
"WinUI3Apps\\NewPlusPackage.msix",
|
|
|
|
|
"WinUI3Apps\\PowerToys.NewPlus.ShellExtension.win10.dll",
|
|
|
|
|
|
[Quick Accent] Migrate UI to WinUI 3 (#48891)
## Summary of the Pull Request
Migrates the **Quick Accent (PowerAccent)** module's UI from WPF
(`System.Windows.*`) to **WinUI 3 (Windows App SDK)**, following the
pattern used by other migrated modules (ImageResizer, PowerDisplay). The
accent selector is now a self-contained WinUI 3 app
(`PowerToys.PowerAccent.exe`) shipped under `WinUI3Apps`, and
`PowerAccent.Core` is UI-framework-agnostic.
demo:
https://github.com/user-attachments/assets/400c33ee-0fc0-491e-841b-a546438edf91
## PR Checklist
- [x] Closes: #48889
- [x] **Communication:** Tracked task (#48889) agreed with core
contributors
- [x] **Tests:** Added/updated and all pass — new
`PowerAccent.Core.UnitTests` (21 tests for the positioning / DPI math);
existing `PowerAccent.Common.UnitTests` unaffected
- [x] **Localization:** No new localizable end-user strings — new
accessibility metadata uses non-localized
`AutomationProperties.AutomationId`, and the window title is the brand
name `"Quick Accent"` (literal, matching ColorPicker)
- [x] **Dev docs:** Updated `doc/devdocs/modules/quickaccent.md`
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json):
the `WinUI3Apps\` PowerAccent payloads are listed in
`ESRPSigning_core.json`
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs):
no manual `Product.wxs` entry — the self-contained `WinUI3Apps` output
(exe + `.pri` + Windows App SDK runtime) is harvested by the
`WinUI3ApplicationsFiles` glob (same as ImageResizer)
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml):
no change needed — `PowerAccent.Core.UnitTests` is discovered by the
existing `**\*UnitTest*.dll` VSTest glob
- [x] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml):
covered by `ESRPSigning_core.json`; no `release.yml` change needed
- [ ] **Documentation updated:** N/A — internal UI-framework migration
with no user-facing behavior change
## Detailed Description of the Pull Request / Additional comments
The migration spans three areas (tracked in #48889):
**UI (WPF → WinUI 3)**
- `PowerAccent.UI` is now a WinUI 3 app shell (custom `Program.Main`,
`WindowsPackageType=None`, `WindowsAppSDKSelfContained=true`).
- The accent selector is a non-activating `TransparentWindow` overlay
shown with `SW_SHOWNA` (never steals focus). It is made always-on-top
only while shown — the WinUIEx `WindowEx.IsAlwaysOnTop` property is
toggled `true` on show / `false` on hide in `OnChangeDisplay` (matching
the WPF original's `Topmost = isActive`), so the dormant,
never-destroyed overlay does not pin a discrete GPU awake on
hybrid-graphics laptops (issue #34849 / PR #41044).
- The accent "pill" selection visual is reproduced with
`VisualStateManager` (WinUI 3 has no `Style.Triggers`).
- **WinUI 3 gotcha:** x:Bind on a Window-rooted XAML initializes only on
`Window.Activated`, which never fires for this `SW_SHOWNA` overlay — so
the selector calls `Bindings.Update()` after `InitializeComponent()`;
without it the `ListView` renders empty.
- **Theme:** the long-lived, never-activated process follows the system
app theme automatically — `App.xaml` leaves `Application.RequestedTheme`
unset, so WinUI re-resolves the `{ThemeResource}` brushes (and retints
the acrylic) on a live light/dark switch with no manual `ThemeListener`
needed.
- **Layout parity with the WPF original:** the bar width hugs its
content (`itemCount × 48`, clamped to the monitor width — computed, not
measured, to avoid a racy `ListView` measure), and each cell pins
`MinWidth=48` (WinUI's `ListViewItem` defaults to 88, which would
otherwise leave wide gaps).
- **Accessibility:** UIA window name + `AutomationId`s on the character
list and description.
**Dependency**
- `PowerAccent.Core` no longer depends on WPF — it raises events and
takes an injected UI-thread marshaller.
- WinForms `SendKeys` → `SendInput` (CsWin32 P/Invoke); WPF-UI (Lepo)
removed; language data moved to the UI-/WinRT-agnostic
`PowerAccent.Common`.
- MVVM via CommunityToolkit.Mvvm with `[ObservableProperty]` **partial
properties** (WinRT-correct, clears MVVMTK0045).
**CI / Build / Installer**
- Signing config, WinUI3Apps glob harvest, and the new unit-test project
— see the checklist above.
## Validation Steps Performed
- **Build:** `x64 Debug` builds with **0 warnings / 0 errors**.
- **Unit tests:** `PowerAccent.Core.UnitTests` — **21/21 pass** (9
anchor positions × DPI 1.0/1.5/2.0, the offset and negative-origin
monitors, caret centering + edge clamping + flip-below).
- **XamlStyler:** `PowerAccentXAML/MainWindow.xaml` passes the passive
format check (CI mode).
- **Manual (single monitor, Top-center, light theme):**
- Accent popup appears with the full accent list rendered.
- Bar hugs the characters and is centered; cell spacing matches the WPF
original.
- Switching the system theme (light/dark) is followed live by the popup.
- With `show_description` enabled, the description row is wide (≥600px)
and readable, with the accent bar centered above it.
- **Remaining manual validation** (tracked in #48889): multi-monitor,
per-monitor DPI, all 9 `toolbar_position` values, and high-contrast
theme.
---------
Co-authored-by: Yu Leng <yuleng@microsoft.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 16:58:04 +08:00
|
|
|
"WinUI3Apps\\PowerAccent.Core.dll",
|
|
|
|
|
"WinUI3Apps\\PowerAccent.Common.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerAccent.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerAccent.exe",
|
2025-06-13 12:27:53 +08:00
|
|
|
"PowerToys.PowerAccentModuleInterface.dll",
|
[Quick Accent] Migrate UI to WinUI 3 (#48891)
## Summary of the Pull Request
Migrates the **Quick Accent (PowerAccent)** module's UI from WPF
(`System.Windows.*`) to **WinUI 3 (Windows App SDK)**, following the
pattern used by other migrated modules (ImageResizer, PowerDisplay). The
accent selector is now a self-contained WinUI 3 app
(`PowerToys.PowerAccent.exe`) shipped under `WinUI3Apps`, and
`PowerAccent.Core` is UI-framework-agnostic.
demo:
https://github.com/user-attachments/assets/400c33ee-0fc0-491e-841b-a546438edf91
## PR Checklist
- [x] Closes: #48889
- [x] **Communication:** Tracked task (#48889) agreed with core
contributors
- [x] **Tests:** Added/updated and all pass — new
`PowerAccent.Core.UnitTests` (21 tests for the positioning / DPI math);
existing `PowerAccent.Common.UnitTests` unaffected
- [x] **Localization:** No new localizable end-user strings — new
accessibility metadata uses non-localized
`AutomationProperties.AutomationId`, and the window title is the brand
name `"Quick Accent"` (literal, matching ColorPicker)
- [x] **Dev docs:** Updated `doc/devdocs/modules/quickaccent.md`
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json):
the `WinUI3Apps\` PowerAccent payloads are listed in
`ESRPSigning_core.json`
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs):
no manual `Product.wxs` entry — the self-contained `WinUI3Apps` output
(exe + `.pri` + Windows App SDK runtime) is harvested by the
`WinUI3ApplicationsFiles` glob (same as ImageResizer)
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml):
no change needed — `PowerAccent.Core.UnitTests` is discovered by the
existing `**\*UnitTest*.dll` VSTest glob
- [x] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml):
covered by `ESRPSigning_core.json`; no `release.yml` change needed
- [ ] **Documentation updated:** N/A — internal UI-framework migration
with no user-facing behavior change
## Detailed Description of the Pull Request / Additional comments
The migration spans three areas (tracked in #48889):
**UI (WPF → WinUI 3)**
- `PowerAccent.UI` is now a WinUI 3 app shell (custom `Program.Main`,
`WindowsPackageType=None`, `WindowsAppSDKSelfContained=true`).
- The accent selector is a non-activating `TransparentWindow` overlay
shown with `SW_SHOWNA` (never steals focus). It is made always-on-top
only while shown — the WinUIEx `WindowEx.IsAlwaysOnTop` property is
toggled `true` on show / `false` on hide in `OnChangeDisplay` (matching
the WPF original's `Topmost = isActive`), so the dormant,
never-destroyed overlay does not pin a discrete GPU awake on
hybrid-graphics laptops (issue #34849 / PR #41044).
- The accent "pill" selection visual is reproduced with
`VisualStateManager` (WinUI 3 has no `Style.Triggers`).
- **WinUI 3 gotcha:** x:Bind on a Window-rooted XAML initializes only on
`Window.Activated`, which never fires for this `SW_SHOWNA` overlay — so
the selector calls `Bindings.Update()` after `InitializeComponent()`;
without it the `ListView` renders empty.
- **Theme:** the long-lived, never-activated process follows the system
app theme automatically — `App.xaml` leaves `Application.RequestedTheme`
unset, so WinUI re-resolves the `{ThemeResource}` brushes (and retints
the acrylic) on a live light/dark switch with no manual `ThemeListener`
needed.
- **Layout parity with the WPF original:** the bar width hugs its
content (`itemCount × 48`, clamped to the monitor width — computed, not
measured, to avoid a racy `ListView` measure), and each cell pins
`MinWidth=48` (WinUI's `ListViewItem` defaults to 88, which would
otherwise leave wide gaps).
- **Accessibility:** UIA window name + `AutomationId`s on the character
list and description.
**Dependency**
- `PowerAccent.Core` no longer depends on WPF — it raises events and
takes an injected UI-thread marshaller.
- WinForms `SendKeys` → `SendInput` (CsWin32 P/Invoke); WPF-UI (Lepo)
removed; language data moved to the UI-/WinRT-agnostic
`PowerAccent.Common`.
- MVVM via CommunityToolkit.Mvvm with `[ObservableProperty]` **partial
properties** (WinRT-correct, clears MVVMTK0045).
**CI / Build / Installer**
- Signing config, WinUI3Apps glob harvest, and the new unit-test project
— see the checklist above.
## Validation Steps Performed
- **Build:** `x64 Debug` builds with **0 warnings / 0 errors**.
- **Unit tests:** `PowerAccent.Core.UnitTests` — **21/21 pass** (9
anchor positions × DPI 1.0/1.5/2.0, the offset and negative-origin
monitors, caret centering + edge clamping + flip-below).
- **XamlStyler:** `PowerAccentXAML/MainWindow.xaml` passes the passive
format check (CI mode).
- **Manual (single monitor, Top-center, light theme):**
- Accent popup appears with the full accent list rendered.
- Bar hugs the characters and is centered; cell spacing matches the WPF
original.
- Switching the system theme (light/dark) is followed live by the popup.
- With `show_description` enabled, the description row is wide (≥600px)
and readable, with the accent bar centered above it.
- **Remaining manual validation** (tracked in #48889): multi-monitor,
per-monitor DPI, all 9 `toolbar_position` values, and high-contrast
theme.
---------
Co-authored-by: Yu Leng <yuleng@microsoft.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-03 16:58:04 +08:00
|
|
|
"WinUI3Apps\\PowerToys.PowerAccentKeyboardService.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
2026-04-10 15:14:41 +08:00
|
|
|
"PowerToys.PowerDisplayModuleInterface.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerDisplay.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerDisplay.exe",
|
feat(powerdisplay): add CLI for monitor control (#48632)
## Summary of the Pull Request
Adds `PowerToys.PowerDisplay.Cli.exe`, a scriptable interface for
controlling monitors through the running PowerDisplay process. It
supports `list`, `get`, `set`, `up`, `down`, `capabilities`, `profiles`,
and `apply-profile`.
The CLI communicates over an authenticated, per-session named pipe;
PowerDisplay remains responsible for DDC/CI and WMI access.
## PR Checklist
- [x] Closes: #48713
- [x] **Communication:** Discussed with core contributors
- [x] **Tests:** Added/updated and all pass
- [x] **Localization:** Core errors are localizable; some help and
output text remains English-only
- [ ] **Dev docs:** N/A; built-in CLI help is the command reference
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetupVNext/Resources.wxs)
- [x] **YML for CI pipeline:** N/A; test assemblies are auto-discovered
- [x] **YML for signed pipeline:** N/A; signing is driven by
`ESRPSigning_core.json`
- [ ] **Documentation updated:** N/A
## Detailed Description of the Pull Request / Additional comments
- Adds an AOT-compatible CLI and shared request/response contracts.
- Uses a secured named-pipe server in PowerDisplay, with stable exit
codes and a bounded request timeout.
- Supports saved profiles by their existing stable profile IDs.
- Adds solution, signing, installer, and unit-test project integration.
## Validation Steps Performed
- PowerDisplay Lib, Contracts, CLI, and IPC unit-test suites pass.
- Native AOT publish completes without analyzer warnings.
- Manually validated the CLI on two DDC/CI monitors, including the
PowerDisplay-unavailable path.
- Rebuilt the PowerDisplay GUI after the shared-library changes.
---------
Co-authored-by: Yu Leng <yuleng@microsoft.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-07-16 23:08:27 +08:00
|
|
|
"WinUI3Apps\\PowerToys.PowerDisplay.Cli.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerDisplay.Cli.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerDisplay.Contracts.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerDisplay.Ipc.dll",
|
2026-02-03 13:53:25 +08:00
|
|
|
"PowerDisplay.Lib.dll",
|
2026-04-10 15:14:41 +08:00
|
|
|
"PowerDisplay.Models.dll",
|
2026-02-03 13:53:25 +08:00
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"WinUI3Apps\\PowerToys.PowerRenameExt.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerRename.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.PowerRenameContextMenu.dll",
|
|
|
|
|
"WinUI3Apps\\PowerRenameContextMenuPackage.msix",
|
|
|
|
|
|
|
|
|
|
"PowerToys.WorkspacesSnapshotTool.exe",
|
|
|
|
|
"PowerToys.WorkspacesLauncher.exe",
|
|
|
|
|
"PowerToys.WorkspacesWindowArranger.exe",
|
|
|
|
|
"PowerToys.WorkspacesEditor.exe",
|
|
|
|
|
"PowerToys.WorkspacesEditor.dll",
|
|
|
|
|
"PowerToys.WorkspacesLauncherUI.exe",
|
|
|
|
|
"PowerToys.WorkspacesLauncherUI.dll",
|
|
|
|
|
"PowerToys.WorkspacesModuleInterface.dll",
|
|
|
|
|
"PowerToys.WorkspacesCsharpLibrary.dll",
|
|
|
|
|
|
|
|
|
|
"WinUI3Apps\\PowerToys.RegistryPreviewExt.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.RegistryPreviewUILib.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.RegistryPreview.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.RegistryPreview.exe",
|
|
|
|
|
|
2026-05-21 17:27:52 +02:00
|
|
|
"WinUI3Apps\\PowerToys.ShortcutGuide.exe",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ShortcutGuide.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ShortcutGuideModuleInterface.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ShortcutGuide.IndexYmlGenerator.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.ShortcutGuide.IndexYmlGenerator.exe",
|
|
|
|
|
"WinUI3Apps\\ShortcutGuide.CPPProject.dll",
|
2025-06-13 12:27:53 +08:00
|
|
|
|
|
|
|
|
"PowerToys.ZoomIt.exe",
|
|
|
|
|
"PowerToys.ZoomItModuleInterface.dll",
|
|
|
|
|
"PowerToys.ZoomItSettingsInterop.dll",
|
|
|
|
|
|
2026-04-15 15:13:56 +08:00
|
|
|
"PowerToys.GrabAndMove.exe",
|
|
|
|
|
"PowerToys.GrabAndMoveModuleInterface.dll",
|
|
|
|
|
|
2025-06-13 12:27:53 +08:00
|
|
|
"WinUI3Apps\\PowerToys.Settings.dll",
|
|
|
|
|
"WinUI3Apps\\PowerToys.Settings.exe",
|
|
|
|
|
|
|
|
|
|
"PowerToys.CmdPalModuleInterface.dll",
|
|
|
|
|
"CmdPalKeyboardService.dll",
|
2025-12-23 21:07:44 +08:00
|
|
|
"PowerToys.ModuleContracts.dll",
|
|
|
|
|
"Awake.ModuleServices.dll",
|
|
|
|
|
"ColorPicker.ModuleServices.dll",
|
|
|
|
|
"Workspaces.ModuleServices.dll",
|
|
|
|
|
"Microsoft.CommandPalette.Extensions.dll",
|
|
|
|
|
"Microsoft.CommandPalette.Extensions.Toolkit.dll",
|
Fix MSIX sparse package DACL contamination breaking File Explorer preview handlers (#47177)
## Summary
Moves the MSIX sparse package's `ExternalLocation` from the PowerToys
root install folder to the `WinUI3Apps\` subfolder, isolating DACL
contamination from preview handler DLLs.
## Problem
On Windows 23H2/24H2/25H2, MSIX sparse package registration adds
AppContainer SIDs (`S-1-15-2-*` / `S-1-15-3-*`) to the DACL of the
`ExternalLocation` folder. Since `ExternalLocation` pointed to the
PowerToys root install folder, this broke File Explorer preview handlers
— `prevhost.exe` (running at LOW integrity) could no longer load preview
handler DLLs (`.txt`, `.md`, `.pdf`, `.svg`, etc.).
## Fix
- **`CustomAction.cpp`**: Changed `ExternalLocation` from
`installFolderPath` → `installFolderPath + L"WinUI3Apps\\"`
- **`AppxManifest.xml`**: Removed unused PowerOCR `<Application>` entry;
stripped `WinUI3Apps\` prefix from `Executable` paths (now relative to
new ExternalLocation)
- **`CmdPal.Ext.PowerToys.csproj`**: Moved `OutputPath` to `WinUI3Apps\`
so the AOT-compiled extension EXE resolves correctly under the new
ExternalLocation
- **WiX installer files**: Updated source/install paths for KBM assets,
CmdPal satellite assemblies, and `CommandPalette.Extensions.winmd` that
moved with the CmdPal output
- **ESRP signing**: Updated CmdPal dll/exe paths to include
`WinUI3Apps\` prefix
## Validation
| Test | 25H2 | 23H2 |
|------|------|------|
| DACL isolation (no S-1-15-* on root) | ✅ | ✅ |
| Preview handlers (.txt, .md, .pdf, .svg) | ✅ | ✅ |
| Peek | ✅ | ✅ |
| Context menus (PowerRename, FileLocksmith, ImageResizer, New+) | ✅ | ✅
|
| Upgrade path (old → new) | ✅ | ✅ |
## Files changed (12)
- `installer/PowerToysSetupCustomActionsVNext/CustomAction.cpp` — core
fix
- `src/PackageIdentity/AppxManifest.xml` — manifest cleanup
-
`src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Microsoft.CmdPal.Ext.PowerToys.csproj`
— output path
-
`src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.PowerToys/Helpers/PowerToysResourcesHelper.cs`
— icon path
- `installer/PowerToysSetupVNext/BaseApplications.wxs` — winmd source
path
- `installer/PowerToysSetupVNext/KeyboardManager.wxs` — KBM assets path
- `installer/PowerToysSetupVNext/Resources.wxs` — CmdPal satellite paths
- `installer/PowerToysSetupVNext/generateAllFileComponents.ps1` — scan
path
- `.pipelines/ESRPSigning_core.json` — signing paths
- `src/PackageIdentity/BuildSparsePackage.ps1` — dev script hint
- `src/PackageIdentity/readme.md` — docs
- `doc/devdocs/modules/cmdpal/powertoys-extension-local-development.md`
— docs
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-24 22:37:59 +08:00
|
|
|
"WinUI3Apps\\Microsoft.CmdPal.Ext.PowerToys.dll",
|
|
|
|
|
"WinUI3Apps\\Microsoft.CmdPal.Ext.PowerToys.exe",
|
Initial DSC v3 support for PowerToys (#41132)
<!-- 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
Tasks checklist
- [X] Implement DSC infra in PowerToys
- [X] Implement Settings DSC resource
- [X] Implement Get, Set, Test, Export, Schema
- [X] Generate manifest (DSC resource JSON)
- [X] Added Unit Tests
- [x] Add `NJsonSchema` v11.4.0 to the stream
- [x] Package the manifest files so dsc.exe can discover them
- [x] Add `PowerToys.DSC.exe` to the PATH (maybe?)
- [x] Add `InstallLocation` in the registry key so `winget configue
export` can export the PowerToys DSC resources
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [X] Closes: #37276
- [X] **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
- [X] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [x] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [x] **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: vanzue <vanzue@outlook.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-09-28 00:12:51 -07:00
|
|
|
"*Microsoft.CmdPal.UI_*.msix",
|
|
|
|
|
|
|
|
|
|
"PowerToys.DSC.dll",
|
Introduce shared sparse package identity for PowerToys (#42352)
<!-- 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 pull request adds support for building, installing, and managing a
shared sparse MSIX package to grant package identity to select Win32
components in PowerToys. It introduces a new `PackageIdentity` project,
updates the installer to handle the new MSIX package during
install/uninstall, and provides developer documentation for working with
the sparse package. Additionally, new dependencies and signing rules are
included to support these changes.
**Sparse Package Identity Support**
* Added new `PackageIdentity` project to the solution for building the
sparse MSIX package, and included it in solution/project build
configurations (`PowerToys.sln`).
[[1]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R29)
[[2]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R54-R55)
[[3]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R873-R880)
* Added developer documentation (`sparse-package.md`) and updated
documentation indexes to describe how to build, register, and consume
the sparse MSIX package.
[[1]](diffhunk://#diff-b4e39fb55a49c6de336d5847d75a55dd1d14840578da0ed9130f0130b61b34aaR1-R87)
[[2]](diffhunk://#diff-d0f204e503506a26ef2aa3605a8d64ac353393526fb5dcf48d4287c821f3edbcR31)
[[3]](diffhunk://#diff-430296c8d28f70d8a0164b44d7dfc30ffb1fb32466dad181947f35885b7f28d1R13)
**Installer Enhancements**
* Implemented new custom actions in the installer to install and
uninstall the `PowerToysSparse.msix` package, supporting both per-user
and machine-level scenarios (`CustomAction.cpp`, `CustomAction.def`,
`Product.wxs`).
[[1]](diffhunk://#diff-a7680a20bf0315cff463a95588a100c99d2afc53030f6e947f1f1dcaca5eefd7R597-R806)
[[2]](diffhunk://#diff-79daec0ccfcea63a2f3acb7d811b8b508529921123c754111bbccbea98b2bd74R36-R37)
[[3]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR115)
[[4]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR127)
[[5]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR149)
[[6]](diffhunk://#diff-c12203517db7cde9ad34df9e6611457d1d3c7bc8eb7d58e06739887d3c1034afR205-R210)
**Build and Dependency Updates**
* Added new NuGet package dependencies for Windows App SDK AI and
Runtime to support MSIX and sparse package features
(`Directory.Packages.props`).
* Updated signing pipeline to include the new `PowerToysSparse.msix`
artifact (`.pipelines/ESRPSigning_core.json`).
<!-- Please review the items on the PR checklist before submitting-->
## 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
---------
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
2025-10-20 08:52:49 +08:00
|
|
|
"PowerToys.DSC.exe",
|
|
|
|
|
|
|
|
|
|
"PowerToysSparse.msix"
|
2025-06-13 12:27:53 +08:00
|
|
|
],
|
2021-12-17 18:15:31 -08:00
|
|
|
"SigningInfo": {
|
|
|
|
|
"Operations": [
|
|
|
|
|
{
|
|
|
|
|
"KeyCode": "CP-230012",
|
|
|
|
|
"OperationSetCode": "SigntoolSign",
|
|
|
|
|
"Parameters": [
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "OpusName",
|
|
|
|
|
"parameterValue": "Microsoft"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "OpusInfo",
|
|
|
|
|
"parameterValue": "http://www.microsoft.com"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "FileDigest",
|
|
|
|
|
"parameterValue": "/fd \"SHA256\""
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "PageHash",
|
|
|
|
|
"parameterValue": "/NPH"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "TimeStamp",
|
|
|
|
|
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"ToolName": "sign",
|
|
|
|
|
"ToolVersion": "1.0"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"KeyCode": "CP-230012",
|
|
|
|
|
"OperationSetCode": "SigntoolVerify",
|
|
|
|
|
"Parameters": [],
|
|
|
|
|
"ToolName": "sign",
|
|
|
|
|
"ToolVersion": "1.0"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"MatchedPath": [
|
|
|
|
|
"ModernWpf.dll",
|
|
|
|
|
"ModernWpf.Controls.dll",
|
|
|
|
|
"System.IO.Abstractions.dll",
|
|
|
|
|
"Mono.Cecil.dll",
|
|
|
|
|
"Mono.Cecil.Mdb.dll",
|
|
|
|
|
"Mono.Cecil.Pdb.dll",
|
|
|
|
|
"Mono.Cecil.Rocks.dll",
|
2023-02-14 18:38:53 -08:00
|
|
|
"Newtonsoft.Json.dll",
|
Setting search (#41285)
<!-- 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
<!-- Please review the items on the PR checklist before submitting-->
## 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
- [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
<!-- Describe how you validated the behavior. Add automated tests
wherever possible, but list manual validation steps taken as well -->
## Validation Steps Performed
Localized search:
<img width="1576" height="480" alt="image"
src="https://github.com/user-attachments/assets/dd6e5e9f-419b-40b1-b796-f0799481ecfc"
/>
## AI summary
This pull request introduces infrastructure and code to support search
functionality for PowerToys settings, including a new search index
specification, a dedicated search library, and updates to the solution
configuration. The main changes are the addition of a spec describing
how settings should be indexed and navigated, the creation of a new
`Common.Search` project with a fuzz search implementation, and updates
to the solution file to include these new components.
**Settings Search Feature Implementation**
* Documentation:
* Added a detailed specification (`settings-search.md`) describing the
structure of PowerToys settings pages, how to index settings, navigation
logic, runtime search, result grouping, build-time indexing strategy,
and corner cases.
* New Search Library:
* Added the new `Common.Search` project to the solution, including its
project file and implementation of a fuzz search service
(`FuzzSearchService<T>`), match options, match results, and search
precision scoring.
[[1]](diffhunk://#diff-ddc06fa41e4e723e54181b0cb85cdd00f57f75725d51ceefa242d4d651a9a363R1-R8)
[[2]](diffhunk://#diff-1a2ca29fc33bcccf338a7843a040ca2c31ba821e8cab7064fab0dbb1224d454cR1-R39)
[[3]](diffhunk://#diff-242764d948b795f39653a84d9b6bfcdc52730100deab2e3a0995be95bb8e7868R1-R10)
[[4]](diffhunk://#diff-61e525491ed916ebd65dabb66dd4f5dc720320d7e295ef1e0bd6d506ea0f7df6R1-R67)
[[5]](diffhunk://#diff-a775f6de2e8d42982829b4161668f49dedbbd9dcbb05ce20003de7e62275c57aR1-R12)
* Solution Configuration:
* Updated `PowerToys.sln` to include `Common.Search` and
`Settings.UI.XamlIndexBuilder` projects, and configured their build
settings for various platforms and mapped project dependencies.
[[1]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R714-R716)
[[2]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R2704-R2727)
[[3]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R2889)
[[4]](diffhunk://#diff-ca837ce490070b91656ffffe31cbad8865ba9174e0f020231f77baf35ff3f811R3157-R3158)
**Spell-check Dictionary Updates**
* Added new terms related to navigation and settings UI components (such
as `Navigatable`, `NavigatablePage`, `settingscard`, `Tru`, `tweakable`)
to the spell-check dictionary to support the new search and indexing
features.
[[1]](diffhunk://#diff-5dcab162c1b233a49973ae010f2b88c7ec4844382abd705e6154685e62bd5c4dR1020-R1021)
[[2]](diffhunk://#diff-5dcab162c1b233a49973ae010f2b88c7ec4844382abd705e6154685e62bd5c4dR1498)
[[3]](diffhunk://#diff-5dcab162c1b233a49973ae010f2b88c7ec4844382abd705e6154685e62bd5c4dR1755-R1761)
---------
Co-authored-by: Niels Laute <niels.laute@live.nl>
Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com>
Co-authored-by: Gordon Lam <73506701+yeelam-gordon@users.noreply.github.com>
2025-08-25 21:23:07 +08:00
|
|
|
"CommunityToolkit.WinUI.Controls.TitleBar.dll",
|
2025-11-17 09:48:32 +08:00
|
|
|
"CommunityToolkit.WinUI.Controls.OpacityMaskView.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2021-12-17 18:15:31 -08:00
|
|
|
"NLog.dll",
|
|
|
|
|
"HtmlAgilityPack.dll",
|
|
|
|
|
"Markdig.Signed.dll",
|
2022-01-25 11:51:37 +00:00
|
|
|
"HelixToolkit.dll",
|
|
|
|
|
"HelixToolkit.Core.Wpf.dll",
|
2021-12-17 18:15:31 -08:00
|
|
|
"Mages.Core.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2023-07-20 00:12:46 +01:00
|
|
|
"NLog.Extensions.Logging.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2021-12-17 18:15:31 -08:00
|
|
|
"concrt140_app.dll",
|
|
|
|
|
"msvcp140_1_app.dll",
|
|
|
|
|
"msvcp140_2_app.dll",
|
|
|
|
|
"msvcp140_app.dll",
|
Initial DSC v3 support for PowerToys (#41132)
<!-- 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
Tasks checklist
- [X] Implement DSC infra in PowerToys
- [X] Implement Settings DSC resource
- [X] Implement Get, Set, Test, Export, Schema
- [X] Generate manifest (DSC resource JSON)
- [X] Added Unit Tests
- [x] Add `NJsonSchema` v11.4.0 to the stream
- [x] Package the manifest files so dsc.exe can discover them
- [x] Add `PowerToys.DSC.exe` to the PATH (maybe?)
- [x] Add `InstallLocation` in the registry key so `winget configue
export` can export the PowerToys DSC resources
<!-- Please review the items on the PR checklist before submitting-->
## PR Checklist
- [X] Closes: #37276
- [X] **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
- [X] **Localization:** All end-user-facing strings can be localized
- [x] **Dev docs:** Added/updated
- [x] **New binaries:** Added on the required places
- [x] [JSON for
signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json)
for new binaries
- [x] [WXS for
installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs)
for new binaries and localization folder
- [x] [YML for CI
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml)
for new test projects
- [x] [YML for signed
pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml)
- [x] **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: vanzue <vanzue@outlook.com>
Co-authored-by: Kai Tao (from Dev Box) <kaitao@microsoft.com>
Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
2025-09-28 00:12:51 -07:00
|
|
|
"Namotion.Reflection.dll",
|
|
|
|
|
"NJsonSchema.Annotations.dll",
|
|
|
|
|
"NJsonSchema.dll",
|
2021-12-17 18:15:31 -08:00
|
|
|
"vcamp140_app.dll",
|
|
|
|
|
"vccorlib140_app.dll",
|
|
|
|
|
"vcomp140_app.dll",
|
|
|
|
|
"vcruntime140_1_app.dll",
|
2022-08-26 18:01:50 +02:00
|
|
|
"vcruntime140_app.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2023-07-20 00:12:46 +01:00
|
|
|
"UnicodeInformation.dll",
|
|
|
|
|
"Microsoft.Web.WebView2.Core.dll",
|
|
|
|
|
"Microsoft.Web.WebView2.WinForms.dll",
|
|
|
|
|
"Microsoft.Web.WebView2.Wpf.dll",
|
|
|
|
|
"WebView2Loader.dll",
|
|
|
|
|
"e_sqlite3.dll",
|
|
|
|
|
"LazyCache.dll",
|
|
|
|
|
"SQLitePCLRaw.batteries_v2.dll",
|
|
|
|
|
"SQLitePCLRaw.core.dll",
|
|
|
|
|
"SQLitePCLRaw.provider.e_sqlite3.dll",
|
|
|
|
|
"ScipBe.Common.Office.OneNote.dll",
|
|
|
|
|
"Interop.Microsoft.Office.Interop.OneNote.dll",
|
|
|
|
|
"hyjiacan.py4n.dll",
|
|
|
|
|
"MessagePack.Annotations.dll",
|
|
|
|
|
"MessagePack.dll",
|
|
|
|
|
"Nerdbank.Streams.dll",
|
2024-05-09 10:32:03 -04:00
|
|
|
"WinUI3Apps\\ReverseMarkdown.dll",
|
2023-07-20 00:12:46 +01:00
|
|
|
"WinUI3Apps\\SharpCompress.dll",
|
2024-05-08 11:32:25 -05:00
|
|
|
"WinUI3Apps\\ZstdSharp.dll",
|
2025-09-29 03:17:44 -07:00
|
|
|
"CommunityToolkit.WinUI.Controls.MarkdownTextBlock.dll",
|
|
|
|
|
"WinUI3Apps\\CommunityToolkit.WinUI.Controls.MarkdownTextBlock.dll",
|
|
|
|
|
"Markdig.dll",
|
|
|
|
|
"WinUI3Apps\\Markdig.dll",
|
|
|
|
|
"RomanNumerals.dll",
|
|
|
|
|
"WinUI3Apps\\RomanNumerals.dll",
|
2024-11-11 10:42:40 +01:00
|
|
|
"TestableIO.System.IO.Abstractions.dll",
|
|
|
|
|
"WinUI3Apps\\TestableIO.System.IO.Abstractions.dll",
|
|
|
|
|
"TestableIO.System.IO.Abstractions.Wrappers.dll",
|
|
|
|
|
"WinUI3Apps\\TestableIO.System.IO.Abstractions.Wrappers.dll",
|
2024-12-11 13:50:16 +00:00
|
|
|
"WinUI3Apps\\OpenAI.dll",
|
2025-04-21 18:18:55 -07:00
|
|
|
"Testably.Abstractions.FileSystem.Interface.dll",
|
|
|
|
|
"WinUI3Apps\\Testably.Abstractions.FileSystem.Interface.dll",
|
2021-12-17 18:15:31 -08:00
|
|
|
"ColorCode.Core.dll",
|
2025-11-05 16:13:55 +08:00
|
|
|
"Microsoft.SemanticKernel.Connectors.Ollama.dll",
|
|
|
|
|
"OllamaSharp.dll",
|
2026-05-20 17:45:56 +08:00
|
|
|
"WinUI3Apps\\Google.Apis.dll",
|
|
|
|
|
"WinUI3Apps\\Google.Apis.Auth.dll",
|
|
|
|
|
"WinUI3Apps\\Google.Apis.Core.dll",
|
|
|
|
|
"WinUI3Apps\\Google.GenAI.dll",
|
2026-05-22 23:43:42 +08:00
|
|
|
"WinUI3Apps\\YamlDotNet.dll",
|
Fix signing configuration: Remove 25 obsolete file references from ESRPSigning_core.json (#40241)
## Summary
This PR fixes the signing pipeline by removing 25 obsolete file
references from `ESRPSigning_core.json` that were causing "0 files out
of: 0 files" errors during the signing process. These references pointed
to files that are either no longer built or were never produced by the
current project structure.
## Root Cause Analysis
The signing configuration contained references to files that fall into
three categories:
1. **Static libraries incorrectly listed as DLLs** - Projects configured
as `StaticLibrary` don't produce `.dll` files
2. **Obsolete/non-existent projects** - References to projects that were
removed or renamed
3. **WinExe projects incorrectly listed as producing DLLs** - C#
projects with `OutputType=WinExe` only produce `.exe` files, not `.dll`
files
## Changes Made
### Static Libraries (3 files removed):
- `Notifications.dll` - notifications project is a StaticLibrary
- `os-detection.dll` - no corresponding project found
- `Telemetry.dll` - telemetry projects are StaticLibraries
### Obsolete Projects (3 files removed):
- `fancyzones.dll` - FancyZones now produces `PowerToys.FancyZones.exe`
- `Wox.dll` - only `Wox.Plugin.dll` and `Wox.Infrastructure.dll` exist
- Duplicate `PowerToys.ManagedTelemetry.dll` entry
### WinExe Projects (19 files removed):
**Preview/Thumbnail Handlers (11 files):**
All preview and thumbnail handler C# projects have `OutputType=WinExe`
and only produce `.exe` files:
- Removed `.dll` entries for: GcodePreviewHandler,
MarkdownPreviewHandler, MonacoPreviewHandler, PdfPreviewHandler,
QoiPreviewHandler, SvgPreviewHandler, GcodeThumbnailProvider,
PdfThumbnailProvider, QoiThumbnailProvider, StlThumbnailProvider,
SvgThumbnailProvider
**Application Modules (8 files):**
- `PowerToys.WorkspacesEditor.dll` and
`PowerToys.WorkspacesLauncherUI.dll`
- `PowerToys.Awake.dll` and `PowerToys.ImageResizer.dll`
- `PowerToys.ColorPickerUI.dll` and `PowerToys.PowerOCR.dll`
- `PowerToys.PowerAccent.dll` and `PowerToys.PowerLauncher.dll`
## Verification
All removed entries were verified by:
1. Checking project files for `OutputType` and `ConfigurationType`
settings
2. Confirming `AssemblyName` and `TargetName` properties
3. Ensuring no actual built artifacts are affected
The signing process should now successfully find all expected files and
eliminate the "0 files out of: 0 files" pattern.
Fixes #40240.
<!-- START COPILOT CODING AGENT TIPS -->
---
💬 Share your feedback on Copilot coding agent for the chance to win a
$200 gift card! Click
[here](https://survey.alchemer.com/s3/8343779/Copilot-Coding-agent) to
start the survey.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: vanzue <69313318+vanzue@users.noreply.github.com>
2025-07-04 09:50:22 +08:00
|
|
|
|
2025-12-09 14:22:18 +08:00
|
|
|
"boost_regex-vc143-mt-gd-x32-1_87.dll",
|
|
|
|
|
"boost_regex-vc143-mt-gd-x64-1_87.dll",
|
|
|
|
|
"boost_regex-vc143-mt-x32-1_87.dll",
|
|
|
|
|
"boost_regex-vc143-mt-x64-1_87.dll",
|
|
|
|
|
|
2025-12-23 21:07:44 +08:00
|
|
|
"Microsoft.ML.OnnxRuntime.dll",
|
|
|
|
|
|
2023-08-08 15:19:38 +02:00
|
|
|
"UnitsNet.dll",
|
2023-11-14 18:27:45 +03:00
|
|
|
"UtfUnknown.dll",
|
2025-12-23 21:07:44 +08:00
|
|
|
"Wpf.Ui.dll",
|
2026-02-03 13:53:25 +08:00
|
|
|
"WmiLight.dll",
|
|
|
|
|
"WmiLight.Native.dll",
|
2025-12-23 21:07:44 +08:00
|
|
|
"Shmuelie.WinRTServer.dll",
|
|
|
|
|
"ToolGood.Words.Pinyin.dll"
|
2021-12-17 18:15:31 -08:00
|
|
|
],
|
|
|
|
|
"SigningInfo": {
|
|
|
|
|
"Operations": [
|
|
|
|
|
{
|
|
|
|
|
"KeyCode": "CP-231522",
|
|
|
|
|
"OperationSetCode": "SigntoolSign",
|
|
|
|
|
"Parameters": [
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "OpusName",
|
|
|
|
|
"parameterValue": "Microsoft"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "OpusInfo",
|
|
|
|
|
"parameterValue": "http://www.microsoft.com"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "FileDigest",
|
|
|
|
|
"parameterValue": "/fd \"SHA256\""
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "Append",
|
|
|
|
|
"parameterValue": "/as"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "PageHash",
|
|
|
|
|
"parameterValue": "/NPH"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"parameterName": "TimeStamp",
|
|
|
|
|
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"ToolName": "sign",
|
|
|
|
|
"ToolVersion": "1.0"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"KeyCode": "CP-231522",
|
|
|
|
|
"OperationSetCode": "SigntoolVerify",
|
|
|
|
|
"Parameters": [],
|
|
|
|
|
"ToolName": "sign",
|
|
|
|
|
"ToolVersion": "1.0"
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
]
|
|
|
|
|
}
|