mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-05-18 05:05:25 +02:00
Fix: Install CommandPalette.Extensions.winmd to WinUI3Apps for COM marshalling (#47210)
## Summary Follow-up fix for #47177. Installs `CommandPalette.Extensions.winmd` to the `WinUI3Apps\` directory (ExternalLocation) instead of the root install folder. ## Problem PR #47177 moved the sparse package's `ExternalLocation` from root to `WinUI3Apps\`, but the `CommandPalette.Extensions.winmd` was still installed to root via `DirectoryRef=INSTALLFOLDER`. The WinRT runtime needs this winmd in the ExternalLocation directory for COM proxy/stub creation during cross-process CmdPal extension activation. Without it, `CoCreateInstance` returns `E_NOINTERFACE` and the PowerToys extension fails to load in Command Palette. ## Fix Split the `BaseApplications.wxs` `DirectoryRef` into two blocks: - **winmd component** -> `WinUI3AppsInstallFolder` (for WinRT COM marshalling) - **auto-generated components** -> `INSTALLFOLDER` (unchanged, avoids ICE30 conflict with `WinUI3ApplicationsFiles`) ## Validation - [x] Local WiX compilation: no ICE30 errors - [x] ADO CI build 145429943 (v0.99.1): passed - [x] Manual verification on 25H2: CmdPal loads 55 commands after winmd placed in WinUI3Apps Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -6,13 +6,16 @@
|
||||
<?define BaseApplicationsFilesPath=$(var.BinDir)\?>
|
||||
|
||||
<Fragment>
|
||||
<DirectoryRef Id="INSTALLFOLDER">
|
||||
<!-- winmd must be in WinUI3Apps (ExternalLocation) for WinRT COM proxy/stub resolution -->
|
||||
<DirectoryRef Id="WinUI3AppsInstallFolder">
|
||||
<Component Id="Microsoft_CommandPalette_Extensions_winmd" Guid="304AD25A-A986-4058-940E-61DB79EBD78C" Bitness="always64">
|
||||
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
|
||||
<RegistryValue Type="string" Name="Microsoft_CommandPalette_Extensions_winmd" Value="" KeyPath="yes" />
|
||||
</RegistryKey>
|
||||
<File Id="Microsoft.CommandPalette.Extensions.winmd" Source="$(var.BinDir)WinUI3Apps\Microsoft.CommandPalette.Extensions.winmd" />
|
||||
</Component>
|
||||
</DirectoryRef>
|
||||
<DirectoryRef Id="INSTALLFOLDER">
|
||||
<!-- Generated by generateFileComponents.ps1 -->
|
||||
<!--BaseApplicationsFiles_Component_Def-->
|
||||
</DirectoryRef>
|
||||
|
||||
Reference in New Issue
Block a user