Compare commits

...

12 Commits

Author SHA1 Message Date
Boliang Zhang (from Dev Box)
8cfc9bd87a Move MSIX context menu DLLs to ContextMenu subfolder to fix DACL contamination
MSIX sparse package registration adds AppContainer SIDs to the ExternalLocation
folder DACL on Windows 23H2. When ExternalLocation pointed to the root install
folder, prevhost.exe (LOW integrity) got ACCESS_DENIED loading preview handler
DLLs. This isolates the 4 context menu COM DLLs and .msix packages into a
ContextMenu\ subfolder so DACL changes don't affect the root folder.

Changes:
- Set OutDir to ContextMenu\ in all 4 context menu vcxproj files
- Update ExternalLocation path in 3 module DLLs (ImageResizer, PowerRename,
  FileLocksmith) and NewPlus MSIX registration
- Add ..\\ prefix to icon/EXE paths in 4 context menu DLLs
- Update runner to load NewPlus from ContextMenu\ subfolder
- Add ContextMenu.wxs installer fragment and update Product.wxs/wixproj
- Use CopyFileToFolders for MSIX assets to ensure they copy to root Assets\
- Add empty-filename guard in generateAllFileComponents.ps1
- Update verification script paths

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-18 00:51:44 +08:00
Boliang Zhang (from Dev Box)
8a9fd334c4 Fix preview handler crash from WebView2 DLL collision after flattening
After flattening WinUI3Apps, the native Microsoft.Web.WebView2.Core.dll (WinRT
component for WinUI3/Peek) overwrites the managed version (needed by WPF/WinForms
preview handlers), causing FileNotFoundException at runtime.

Fix: Ship both variants side by side:
- Native DLL stays as Microsoft.Web.WebView2.Core.dll (for WinUI3 apps)
- Managed copy added as Microsoft.Web.WebView2.Core.Managed.dll (for preview handlers)
- WebView2Resolver assembly handler loads the managed copy at runtime
- WebView2.Core.dll removed from deps.json inputs before generation

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 13:03:07 +08:00
Boliang Zhang (from Dev Box)
5280aee77d Remove stale ImageResizer exclusion from installer file list
After PR #45288 migrated ImageResizer to WinUI3, PowerToys.ImageResizer.exe
is the actual WinUI3 UI app (not a leaked apphost artifact). The workaround
that stripped it from BaseApplications was causing the context menu to fail
with 'cannot find exe'.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-15 13:03:06 +08:00
Boliang Zhang (from Dev Box)
35d729b5db Remove WinUI3Applications.wxs (no longer needed)
With the flattened layout, all files are covered by BaseApplications.
MajorUpgrade handles cleanup independently — the new MSI does not
need the old component group definitions.

- Delete WinUI3Applications.wxs
- Remove ComponentGroupRef from Product.wxs
- Remove Compile and PostBuildEvent entries from wixproj
- Clean up stale comments in generateAllFileComponents.ps1

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-12 22:13:28 +08:00
Boliang Zhang (from Dev Box)
fab3c0948f Add dumpbin, mdmerge, mfcm to spell-check allow list
These are legitimate technical terms:
- dumpbin: Microsoft COFF/PE binary inspector
- mdmerge: Windows SDK metadata merge tool
- mfcm: MFC managed DLL name pattern (mfcm140*.dll)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-12 21:42:35 +08:00
Boliang Zhang (from Dev Box)
7da6201349 Remove WinUI3Apps asset conflict audit (no longer applicable)
The WinUI3Apps directory no longer exists after layout flattening.
CmdPal is the only remaining subfolder and does not need multi-app
asset conflict checks (resources.pri, .xbf, loose assets are all
valid for a single-app directory).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-11 16:53:02 +08:00
Boliang Zhang (from Dev Box)
2eb5dceb80 Update CI signing policy and pipeline for flattened layout
Remove WinUI3Apps\\ prefix from all file paths in ESRPSigning_core.json
(62 entries) and deduplicate 6 entries that already existed without the
prefix.

Update job-build-project.yml:
- SDK staging: WinUI3Apps/CmdPal/ -> CmdPal/
- ARM64 WebView2 hack: target WinUI3Apps/ -> root Release/
- Asset conflict audit: WinUI3Apps -> CmdPal (only remaining subfolder)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-11 13:33:38 +08:00
Boliang Zhang (from Dev Box)
844b739c44 Remove duplicate WinUI3ApplicationsFiles generation from installer script
With the flattened output layout, BaseApplicationsFiles and
WinUI3ApplicationsFiles both scanned the same directory, causing
WIX0204 ICE30 errors (duplicate files in two components).

Stop generating WinUI3ApplicationsFiles since BaseApplicationsFiles
already covers all root-directory files. The empty
WinUI3ApplicationsComponentGroup is kept for upgrade compatibility.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-11 11:29:57 +08:00
Boliang Zhang (from Dev Box)
9228cb7cb2 Fix CppWinRT mdmerge duplicate type error in shared OutDir
When multiple CppWinRT component projects share the same OutDir,
mdmerge's metadata-dir scan finds a stale copy of the project's own
WinMD from a previous build, causing 'Duplicate type' errors and
empty merge output. This prevents cppwinrt.exe from generating the
required .g.h and module.g.cpp files.

Add a CleanStaleProjectWinMD target that deletes the project's own
WinMD from OutDir before mdmerge runs.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-10 22:19:37 +08:00
Boliang Zhang (from Dev Box)
733d3c7131 Remove unused MFC/AMP/OpenMP DLLs from build output and installer
VC++ Redistributable copies MFC, C++ AMP, and OpenMP DLLs into the
build output via CopyCppRuntimeToOutputDir, but no PowerToys binary
imports them (verified with dumpbin /dependents).

- Add RemoveUnusedVCRuntimeDlls target in Directory.Build.targets to
  delete mfc140*.dll, mfcm140*.dll, vcamp140*.dll, vcomp140*.dll
  from OutDir after CopyCppRuntimeToOutputDir copies them.
- Add MFC DLLs to exclusion list in generateAllFileComponents.ps1
  to prevent them from being packaged in the installer.

Saves ~11 MB per output location.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-10 20:02:17 +08:00
Boliang Zhang (from Dev Box)
3ed41e0ae5 Update installer to remove WinUI3Apps subfolder
Flatten the installer layout to match the flattened build output.
WinUI3Apps directory is removed from the installation tree.

WiX changes:
- Product.wxs: Remove WinUI3AppsInstallFolder directory hierarchy,
  move Microsoft.UI.Xaml under INSTALLFOLDER directly
- Core.wxs: Update RemoveFolder entries for new directory IDs
- 16 .wxs files: Redirect DirectoryRef and source paths from
  WinUI3Apps\ to root, WinUI3AppsAssetsFolder to BaseApplicationsAssetsFolder
- WinUI3Applications.wxs: Source from root instead of WinUI3Apps\
- CmdPal.wxs: CmdPal directory now directly under INSTALLFOLDER
- Remove dead hardlink custom action stubs from Product.wxs

Other changes:
- generateAllFileComponents.ps1: Update 16 -depsPath parameters
- CustomAction.cpp: Update 5 hardcoded runtime paths for
  Settings scripts and CmdPal MSIX package location

WiX component IDs (WinUI3AppsMicrosoftUIXamlAssets_*, etc.) are
preserved for upgrade compatibility with existing installations.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-10 16:16:45 +08:00
Boliang Zhang (from Dev Box)
5631b20c6c Remove WinUI3Apps subfolder from build output and paths
Flatten build output by removing WinUI3Apps intermediate folder.
WinUI3 projects now output to the root build folder, eliminating
~435 duplicate DLLs (~316 MB).

- Update OutputPath in 47 csproj/props and OutDir in 20 vcxproj files
- Fix ~50 hardcoded WinUI3Apps path references in source
- Update build scripts (build-installer, cert-sign, self-sign, verify)
- Remove WinUI3Apps workarounds in MonacoHelper
- Rename GetPowerToysInstallationWinUI3AppsAssetsFolder

CmdPal retains its CmdPal\ subfolder for MSIX packaging.
Installer WiX files not updated yet (separate phase).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-04-10 16:07:37 +08:00
161 changed files with 731 additions and 519 deletions

View File

@@ -2021,6 +2021,7 @@ DPMS
DString
DSVG
dto
dumpbin
dutil
dwflags
Dxva
@@ -2143,6 +2144,8 @@ maximizebox
mber
Mbuttondown
mccs
mdmerge
mfcm
mcp
Metacharacter
metadatamatters

View File

@@ -5,7 +5,7 @@
{
"MatchedPath": [
"*.resources.dll",
"WinUI3Apps\\Assets\\Settings\\Scripts\\*.ps1",
"Assets\\Settings\\Scripts\\*.ps1",
"PowerToys.ActionRunner.exe",
"PowerToys.Update.exe",
@@ -49,8 +49,8 @@
"PowerToys.PowerOCR.exe",
"PowerToys.AdvancedPasteModuleInterface.dll",
"WinUI3Apps\\PowerToys.AdvancedPaste.exe",
"WinUI3Apps\\PowerToys.AdvancedPaste.dll",
"PowerToys.AdvancedPaste.exe",
"PowerToys.AdvancedPaste.dll",
"PowerToys.AwakeModuleInterface.dll",
"PowerToys.Awake.exe",
@@ -76,7 +76,6 @@
"PowerToys.BgcodeThumbnailProvider.dll",
"PowerToys.BgcodeThumbnailProvider.exe",
"PowerToys.BgcodeThumbnailProviderCpp.dll",
"PowerToys.ManagedTelemetry.dll",
"PowerToys.MarkdownPreviewHandler.dll",
"PowerToys.MarkdownPreviewHandler.exe",
"PowerToys.MarkdownPreviewHandlerCpp.dll",
@@ -109,53 +108,49 @@
"PowerToys.KeyboardManager.dll",
"KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
"WinUI3Apps\\PowerToys.KeyboardManagerEditorUI.exe",
"WinUI3Apps\\PowerToys.KeyboardManagerEditorUI.dll",
"PowerToys.KeyboardManagerEditorUI.exe",
"PowerToys.KeyboardManagerEditorUI.dll",
"KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
"PowerToys.KeyboardManagerEditorLibraryWrapper.dll",
"WinUI3Apps\\PowerToys.HostsModuleInterface.dll",
"WinUI3Apps\\PowerToys.HostsUILib.dll",
"WinUI3Apps\\PowerToys.Hosts.dll",
"WinUI3Apps\\PowerToys.Hosts.exe",
"PowerToys.HostsModuleInterface.dll",
"PowerToys.HostsUILib.dll",
"PowerToys.Hosts.dll",
"PowerToys.Hosts.exe",
"WinUI3Apps\\PowerToys.FileLocksmithLib.Interop.dll",
"WinUI3Apps\\PowerToys.FileLocksmithExt.dll",
"WinUI3Apps\\PowerToys.FileLocksmithUI.exe",
"WinUI3Apps\\PowerToys.FileLocksmithUI.dll",
"WinUI3Apps\\PowerToys.FileLocksmithContextMenu.dll",
"PowerToys.FileLocksmithLib.Interop.dll",
"PowerToys.FileLocksmithExt.dll",
"PowerToys.FileLocksmithUI.exe",
"PowerToys.FileLocksmithUI.dll",
"PowerToys.FileLocksmithContextMenu.dll",
"FileLocksmithContextMenuPackage.msix",
"FileLocksmithCLI.exe",
"WinUI3Apps\\Peek.Common.dll",
"WinUI3Apps\\Peek.FilePreviewer.dll",
"WinUI3Apps\\Powertoys.Peek.UI.dll",
"WinUI3Apps\\Powertoys.Peek.UI.exe",
"WinUI3Apps\\Powertoys.Peek.dll",
"Peek.Common.dll",
"Peek.FilePreviewer.dll",
"Powertoys.Peek.UI.dll",
"Powertoys.Peek.UI.exe",
"Powertoys.Peek.dll",
"WinUI3Apps\\PowerToys.QuickAccess.dll",
"WinUI3Apps\\PowerToys.QuickAccess.exe",
"WinUI3Apps\\PowerToys.Settings.UI.Controls.dll",
"PowerToys.QuickAccess.dll",
"PowerToys.QuickAccess.exe",
"PowerToys.Settings.UI.Controls.dll",
"WinUI3Apps\\PowerToys.EnvironmentVariablesModuleInterface.dll",
"WinUI3Apps\\PowerToys.EnvironmentVariablesUILib.dll",
"WinUI3Apps\\PowerToys.EnvironmentVariables.dll",
"WinUI3Apps\\PowerToys.EnvironmentVariables.exe",
"PowerToys.EnvironmentVariablesModuleInterface.dll",
"PowerToys.EnvironmentVariablesUILib.dll",
"PowerToys.EnvironmentVariables.dll",
"PowerToys.EnvironmentVariables.exe",
"WinUI3Apps\\PowerToys.ImageResizer.exe",
"WinUI3Apps\\PowerToys.ImageResizer.dll",
"WinUI3Apps\\PowerToys.ImageResizerCLI.exe",
"WinUI3Apps\\PowerToys.ImageResizerCLI.dll",
"WinUI3Apps\\PowerToys.ImageResizerExt.dll",
"WinUI3Apps\\PowerToys.ImageResizerContextMenu.dll",
"WinUI3Apps\\ImageResizerContextMenuPackage.msix",
"PowerToys.ImageResizer.exe",
"PowerToys.ImageResizer.dll",
"PowerToys.ImageResizerCLI.exe",
"PowerToys.ImageResizerCLI.dll",
"PowerToys.ImageResizerExt.dll",
"PowerToys.ImageResizerContextMenu.dll",
"ImageResizerContextMenuPackage.msix",
"PowerToys.LightSwitchModuleInterface.dll",
"LightSwitchService\\PowerToys.LightSwitchService.exe",
"PowerToys.KeyboardManager.dll",
"KeyboardManagerEditor\\PowerToys.KeyboardManagerEditor.exe",
"KeyboardManagerEngine\\PowerToys.KeyboardManagerEngine.exe",
"PowerToys.KeyboardManagerEditorLibraryWrapper.dll",
"PowerToys.Launcher.dll",
"PowerToys.PowerLauncher.dll",
@@ -185,10 +180,10 @@
"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.MeasureToolModuleInterface.dll",
"PowerToys.MeasureToolCore.dll",
"PowerToys.MeasureToolUI.dll",
"PowerToys.MeasureToolUI.exe",
"PowerToys.FindMyMouse.dll",
"PowerToys.MouseHighlighter.dll",
@@ -207,9 +202,9 @@
"PowerToys.MouseWithoutBordersHelper.dll",
"PowerToys.MouseWithoutBordersHelper.exe",
"WinUI3Apps\\PowerToys.NewPlus.ShellExtension.dll",
"WinUI3Apps\\NewPlusPackage.msix",
"WinUI3Apps\\PowerToys.NewPlus.ShellExtension.win10.dll",
"PowerToys.NewPlus.ShellExtension.dll",
"NewPlusPackage.msix",
"PowerToys.NewPlus.ShellExtension.win10.dll",
"PowerAccent.Core.dll",
"PowerToys.PowerAccent.dll",
@@ -218,15 +213,15 @@
"PowerToys.PowerAccentKeyboardService.dll",
"PowerToys.PowerDisplayModuleInterface.dll",
"WinUI3Apps\\PowerToys.PowerDisplay.dll",
"WinUI3Apps\\PowerToys.PowerDisplay.exe",
"PowerToys.PowerDisplay.dll",
"PowerToys.PowerDisplay.exe",
"PowerDisplay.Lib.dll",
"PowerDisplay.Models.dll",
"WinUI3Apps\\PowerToys.PowerRenameExt.dll",
"WinUI3Apps\\PowerToys.PowerRename.exe",
"WinUI3Apps\\PowerToys.PowerRenameContextMenu.dll",
"WinUI3Apps\\PowerRenameContextMenuPackage.msix",
"PowerToys.PowerRenameExt.dll",
"PowerToys.PowerRename.exe",
"PowerToys.PowerRenameContextMenu.dll",
"PowerRenameContextMenuPackage.msix",
"PowerToys.WorkspacesSnapshotTool.exe",
"PowerToys.WorkspacesLauncher.exe",
@@ -238,10 +233,10 @@
"PowerToys.WorkspacesModuleInterface.dll",
"PowerToys.WorkspacesCsharpLibrary.dll",
"WinUI3Apps\\PowerToys.RegistryPreviewExt.dll",
"WinUI3Apps\\PowerToys.RegistryPreviewUILib.dll",
"WinUI3Apps\\PowerToys.RegistryPreview.dll",
"WinUI3Apps\\PowerToys.RegistryPreview.exe",
"PowerToys.RegistryPreviewExt.dll",
"PowerToys.RegistryPreviewUILib.dll",
"PowerToys.RegistryPreview.dll",
"PowerToys.RegistryPreview.exe",
"PowerToys.ShortcutGuide.exe",
"PowerToys.ShortcutGuideModuleInterface.dll",
@@ -250,8 +245,8 @@
"PowerToys.ZoomItModuleInterface.dll",
"PowerToys.ZoomItSettingsInterop.dll",
"WinUI3Apps\\PowerToys.Settings.dll",
"WinUI3Apps\\PowerToys.Settings.exe",
"PowerToys.Settings.dll",
"PowerToys.Settings.exe",
"PowerToys.CmdPalModuleInterface.dll",
"CmdPalKeyboardService.dll",
@@ -361,22 +356,16 @@
"MessagePack.Annotations.dll",
"MessagePack.dll",
"Nerdbank.Streams.dll",
"WinUI3Apps\\ReverseMarkdown.dll",
"WinUI3Apps\\SharpCompress.dll",
"WinUI3Apps\\ZstdSharp.dll",
"ReverseMarkdown.dll",
"SharpCompress.dll",
"ZstdSharp.dll",
"CommunityToolkit.WinUI.Controls.MarkdownTextBlock.dll",
"WinUI3Apps\\CommunityToolkit.WinUI.Controls.MarkdownTextBlock.dll",
"Markdig.dll",
"WinUI3Apps\\Markdig.dll",
"RomanNumerals.dll",
"WinUI3Apps\\RomanNumerals.dll",
"TestableIO.System.IO.Abstractions.dll",
"WinUI3Apps\\TestableIO.System.IO.Abstractions.dll",
"TestableIO.System.IO.Abstractions.Wrappers.dll",
"WinUI3Apps\\TestableIO.System.IO.Abstractions.Wrappers.dll",
"WinUI3Apps\\OpenAI.dll",
"OpenAI.dll",
"Testably.Abstractions.FileSystem.Interface.dll",
"WinUI3Apps\\Testably.Abstractions.FileSystem.Interface.dll",
"ColorCode.Core.dll",
"Microsoft.SemanticKernel.Connectors.Ollama.dll",
"OllamaSharp.dll",
@@ -441,4 +430,4 @@
}
}
]
}
}

View File

@@ -350,8 +350,8 @@ jobs:
displayName: Stage SDK/lib
inputs:
contents: |-
"**/Microsoft.CommandPalette.Extensions.Toolkit/$(BuildPlatform)/release/WinUI3Apps/CmdPal/Microsoft.CommandPalette.Extensions.Toolkit.dll"
"**/Microsoft.CommandPalette.Extensions.Toolkit/$(BuildPlatform)/release/WinUI3Apps/CmdPal/Microsoft.CommandPalette.Extensions.Toolkit.deps.json"
"**/Microsoft.CommandPalette.Extensions.Toolkit/$(BuildPlatform)/release/CmdPal/Microsoft.CommandPalette.Extensions.Toolkit.dll"
"**/Microsoft.CommandPalette.Extensions.Toolkit/$(BuildPlatform)/release/CmdPal/Microsoft.CommandPalette.Extensions.Toolkit.deps.json"
flattenFolders: True
targetFolder: $(JobOutputDirectory)/sdk/lib/net8.0-windows10.0.19041.0
@@ -432,7 +432,7 @@ jobs:
condition: and(succeeded(), eq(variables['BuildPlatform'], 'arm64'))
inputs:
contents: packages/Microsoft.Web.WebView2.1.0.2903.40/runtimes/win-ARM64/native_uap/Microsoft.Web.WebView2.Core.dll
targetFolder: $(Build.SourcesDirectory)/ARM64/Release/WinUI3Apps/
targetFolder: $(Build.SourcesDirectory)/ARM64/Release/
flattenFolders: True
OverWrite: True
@@ -451,9 +451,8 @@ jobs:
& '.pipelines/verifyPossibleAssetConflicts.ps1' -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)'
displayName: Audit base applications path asset conflicts
- pwsh: |-
& '.pipelines/verifyPossibleAssetConflicts.ps1' -targetDir '$(build.sourcesdirectory)\$(BuildPlatform)\$(BuildConfiguration)\WinUI3Apps'
displayName: Audit WinAppSDK applications path asset conflicts
# WinUI3Apps directory no longer exists after layout flattening.
# CmdPal is the only remaining subfolder and doesn't need multi-app conflict checks.
# To streamline the pipeline and prevent errors, skip this step during compatibility tests with the latest WinAppSDK.
- ${{ if eq(parameters.useLatestWinAppSDK, false) }}:

View File

@@ -65,4 +65,32 @@
<!-- Note: For C++ skipped test projects, build is effectively skipped by removing all compile items above.
We don't define empty Build/Rebuild/Clean targets here because MSBuild Target definitions with Condition
on the Target element still override the default targets even when condition is false. -->
<!--
When multiple CppWinRT component projects share the same OutDir, mdmerge's
metadata-dir scan can find a stale copy of the project's own WinMD produced
by a previous build, causing "Duplicate type" errors and empty merge output.
Delete the stale WinMD before mdmerge runs so the fresh merge succeeds.
-->
<Target Name="CleanStaleProjectWinMD"
BeforeTargets="CppWinRTMergeProjectWinMDInputs"
Condition="'$(CppWinRTProjectWinMD)' != ''">
<Delete Files="$(CppWinRTProjectWinMD)" Condition="Exists('$(CppWinRTProjectWinMD)')" />
</Target>
<!--
Remove unused VC runtime DLLs that leak from the VC++ Redistributable tree
(MFC, C++ AMP, OpenMP) via CopyCppRuntimeToOutputDir.
No PowerToys binary imports these — verified across all built binaries.
Saves ~11 MB per output location.
-->
<Target Name="RemoveUnusedVCRuntimeDlls" AfterTargets="CopyCppRuntimeToOutputDir" Condition="'$(ConfigurationType)' != 'StaticLibrary'">
<ItemGroup>
<_UnusedVCRuntimeDlls Include="$(OutDir)mfc140*.dll" />
<_UnusedVCRuntimeDlls Include="$(OutDir)mfcm140*.dll" />
<_UnusedVCRuntimeDlls Include="$(OutDir)vcamp140*.dll" />
<_UnusedVCRuntimeDlls Include="$(OutDir)vcomp140*.dll" />
</ItemGroup>
<Delete Files="@(_UnusedVCRuntimeDlls)" TreatErrorsAsWarnings="true" />
</Target>
</Project>

View File

@@ -949,11 +949,11 @@ UINT __stdcall UninstallCommandNotFoundModuleCA(MSIHANDLE hInstall)
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted";
command += " -Command ";
command += "\"[Environment]::SetEnvironmentVariable('PATH', [Environment]::GetEnvironmentVariable('PATH', 'Machine') + ';' + [Environment]::GetEnvironmentVariable('PATH', 'User'), 'Process');";
command += "pwsh.exe -NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File '" + winrt::to_string(installationFolder) + "\\WinUI3Apps\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "'\"";
command += "pwsh.exe -NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File '" + winrt::to_string(installationFolder) + "\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "'\"";
#else
command = "pwsh.exe";
command += " ";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(installationFolder) + "\\WinUI3Apps\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "\"";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(installationFolder) + "\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "\"";
#endif
system(command.c_str());
@@ -978,7 +978,7 @@ UINT __stdcall UpgradeCommandNotFoundModuleCA(MSIHANDLE hInstall)
command = "pwsh.exe";
command += " ";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(installationFolder) + "\\WinUI3Apps\\Assets\\Settings\\Scripts\\UpgradeModule.ps1" + "\"";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(installationFolder) + "\\Assets\\Settings\\Scripts\\UpgradeModule.ps1" + "\"";
system(command.c_str());
@@ -1354,8 +1354,8 @@ UINT __stdcall InstallCmdPalPackageCA(MSIHANDLE hInstall)
try
{
auto msix = package::FindMsixFile(installationFolder + L"\\WinUI3Apps\\CmdPal\\", false);
auto dependencies = package::FindMsixFile(installationFolder + L"\\WinUI3Apps\\CmdPal\\Dependencies\\", true);
auto msix = package::FindMsixFile(installationFolder + L"\\CmdPal\\", false);
auto dependencies = package::FindMsixFile(installationFolder + L"\\CmdPal\\Dependencies\\", true);
if (!msix.empty())
{

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define AdvancedPasteAssetsFiles=?>
<?define AdvancedPasteAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\AdvancedPaste\?>
<?define AdvancedPasteAssetsFilesPath=$(var.BinDir)Assets\AdvancedPaste\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="AdvancedPasteAssetsFolder" Name="AdvancedPaste" />
</DirectoryRef>
<DirectoryRef Id="AdvancedPasteAssetsFolder" FileSource="$(var.AdvancedPasteAssetsFilesPath)">

View File

@@ -1,8 +1,8 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define CmdPalBuildDir="$(var.BinDir)\WinUI3Apps\CmdPal\"?>
<?define CmdPalBuildDir="$(var.BinDir)\CmdPal\"?>
<Fragment>
<DirectoryRef Id="WinUI3AppsInstallFolder">
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="CmdPalInstallFolder" Name="CmdPal">
<Directory Id="CmdPalDepsInstallFolder" Name="Dependencies">
<?if $(sys.BUILDARCH) = x64 ?>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define ContextMenuFiles=?>
<?define ContextMenuFilesPath=$(var.BinDir)\ContextMenu\?>
<?define ContextMenuFileLocksmithAssetsFiles=?>
<?define ContextMenuFileLocksmithAssetsFilesPath=$(var.BinDir)\ContextMenu\Assets\FileLocksmith\?>
<?define ContextMenuImageResizerAssetsFiles=?>
<?define ContextMenuImageResizerAssetsFilesPath=$(var.BinDir)\ContextMenu\Assets\ImageResizer\?>
<?define ContextMenuNewPlusAssetsFiles=?>
<?define ContextMenuNewPlusAssetsFilesPath=$(var.BinDir)\ContextMenu\Assets\NewPlus\?>
<?define ContextMenuPowerRenameAssetsFiles=?>
<?define ContextMenuPowerRenameAssetsFilesPath=$(var.BinDir)\ContextMenu\Assets\PowerRename\?>
<Fragment>
<!-- Context menu DLLs and MSIX packages isolated in ContextMenu subfolder
to prevent DACL contamination from MSIX sparse package registration -->
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="ContextMenuFolder" Name="ContextMenu" />
</DirectoryRef>
<DirectoryRef Id="ContextMenuFolder" FileSource="$(var.ContextMenuFilesPath)">
<!-- Generated by generateFileComponents.ps1 -->
<!--ContextMenuFiles_Component_Def-->
</DirectoryRef>
<!-- MSIX visual assets (PNGs) must be under ContextMenu\Assets\ because
AppxManifest.xml resolves asset paths relative to ExternalLocation -->
<DirectoryRef Id="ContextMenuFolder">
<Directory Id="ContextMenuAssetsFolder" Name="Assets">
<Directory Id="ContextMenuFileLocksmithAssetsFolder" Name="FileLocksmith" />
<Directory Id="ContextMenuImageResizerAssetsFolder" Name="ImageResizer" />
<Directory Id="ContextMenuNewPlusAssetsFolder" Name="NewPlus" />
<Directory Id="ContextMenuPowerRenameAssetsFolder" Name="PowerRename" />
</Directory>
</DirectoryRef>
<DirectoryRef Id="ContextMenuFileLocksmithAssetsFolder" FileSource="$(var.ContextMenuFileLocksmithAssetsFilesPath)">
<!--ContextMenuFileLocksmithAssetsFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ContextMenuImageResizerAssetsFolder" FileSource="$(var.ContextMenuImageResizerAssetsFilesPath)">
<!--ContextMenuImageResizerAssetsFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ContextMenuNewPlusAssetsFolder" FileSource="$(var.ContextMenuNewPlusAssetsFilesPath)">
<!--ContextMenuNewPlusAssetsFiles_Component_Def-->
</DirectoryRef>
<DirectoryRef Id="ContextMenuPowerRenameAssetsFolder" FileSource="$(var.ContextMenuPowerRenameAssetsFilesPath)">
<!--ContextMenuPowerRenameAssetsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="ContextMenuComponentGroup">
<!-- Ensures folder removal on uninstall -->
<Component Id="RemoveContextMenuFolder" Guid="F5A3E8C1-7B2D-4F90-A1C6-3E8D9F2B5C74" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveContextMenuFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveFolderContextMenuFolder" Directory="ContextMenuFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderContextMenuAssetsFolder" Directory="ContextMenuAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderCtxMenuFLAssetsFolder" Directory="ContextMenuFileLocksmithAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderCtxMenuIRAssetsFolder" Directory="ContextMenuImageResizerAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderCtxMenuNPAssetsFolder" Directory="ContextMenuNewPlusAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderCtxMenuPRAssetsFolder" Directory="ContextMenuPowerRenameAssetsFolder" On="uninstall" />
</Component>
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -120,8 +120,8 @@
<RegistryValue Type="string" Name="RemoveCoreFolder" Value="" KeyPath="yes" />
</RegistryKey>
<RemoveFolder Id="RemoveBaseApplicationsAssetsFolder" Directory="BaseApplicationsAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveWinUI3AppsInstallFolder" Directory="WinUI3AppsInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveWinUI3AppsAssetsFolder" Directory="WinUI3AppsAssetsFolder" On="uninstall" />
<RemoveFolder Id="RemoveMicrosoftUIXamlInstallFolder" Directory="MicrosoftUIXamlInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveCmdPalInstallFolder" Directory="CmdPalInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveSvgsFolder" Directory="SvgsFolder" On="uninstall" />
<RemoveFolder Id="RemoveINSTALLFOLDER" Directory="INSTALLFOLDER" On="uninstall" />
</Component>

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define EnvironmentVariablesAssetsFiles=?>
<?define EnvironmentVariablesAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\EnvironmentVariables\?>
<?define EnvironmentVariablesAssetsFilesPath=$(var.BinDir)Assets\EnvironmentVariables\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="EnvironmentVariablesAssetsFolder" Name="EnvironmentVariables" />
</DirectoryRef>
<DirectoryRef Id="EnvironmentVariablesAssetsFolder" FileSource="$(var.EnvironmentVariablesAssetsFilesPath)">

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define FileLocksmithAssetsFiles=?>
<?define FileLocksmithAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\FileLocksmith\?>
<?define FileLocksmithAssetsFilesPath=$(var.BinDir)Assets\FileLocksmith\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="FileLocksmithAssetsInstallFolder" Name="FileLocksmith" />
</DirectoryRef>
<DirectoryRef Id="FileLocksmithAssetsInstallFolder" FileSource="$(var.FileLocksmithAssetsFilesPath)">

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define HostsAssetsFiles=?>
<?define HostsAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Hosts\?>
<?define HostsAssetsFilesPath=$(var.BinDir)Assets\Hosts\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="HostsAssetsFolder" Name="Hosts" />
</DirectoryRef>
<DirectoryRef Id="HostsAssetsFolder" FileSource="$(var.HostsAssetsFilesPath)">

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define ImageResizerAssetsFiles=?>
<?define ImageResizerAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\ImageResizer\?>
<?define ImageResizerAssetsFilesPath=$(var.BinDir)Assets\ImageResizer\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="ImageResizerAssetsFolder" Name="ImageResizer" />
</DirectoryRef>

View File

@@ -1,17 +1,17 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define KeyboardManagerAssetsFiles=?>
<?define KeyboardManagerAssetsWinUI3Files=?>
<?define KeyboardManagerAssetsFilesPath=$(var.BinDir)\Assets\KeyboardManager\?>
<?define KeyboardManagerAssetsWinUI3FilesPath=$(var.BinDir)\WinUI3Apps\Assets\KeyboardManagerEditor\?>
<?define KeyboardManagerAssetsWinUI3FilesPath=$(var.BinDir)\Assets\KeyboardManagerEditor\?>
<Fragment>
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="KeyboardManagerAssetsInstallFolder" Name="KeyboardManager" />
</DirectoryRef>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="KeyboardManagerAssetsWinUI3InstallFolder" Name="KeyboardManagerEditor" />
</DirectoryRef>

View File

@@ -3,14 +3,14 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define NewPlusAssetsFiles=?>
<?define NewPlusAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\NewPlus\?>
<?define NewPlusTemplateFilesPath=$(var.BinDir)WinUI3Apps\Assets\NewPlus\Templates\?>
<?define NewPlusTemplateSubFilesPath=$(var.BinDir)WinUI3Apps\Assets\NewPlus\Templates\Example folder\?>
<?define NewPlusAssetsFilesPath=$(var.BinDir)Assets\NewPlus\?>
<?define NewPlusTemplateFilesPath=$(var.BinDir)Assets\NewPlus\Templates\?>
<?define NewPlusTemplateSubFilesPath=$(var.BinDir)Assets\NewPlus\Templates\Example folder\?>
<Fragment>
<!-- Assets -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="NewPlusAssetsInstallFolder" Name="NewPlus" />
</DirectoryRef>
<DirectoryRef Id="NewPlusAssetsInstallFolder" FileSource="$(var.NewPlusAssetsFilesPath)">
@@ -29,7 +29,7 @@
<!-- Example templates -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="NewPlusInstallFolder" Name="NewPlus">
<Directory Id="NewPlusTemplatesInstallFolder" Name="Templates">
<Directory Id="NewPlusTemplatesSubInstallFolder" Name="Example folder" />

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define PeekAssetsFiles=?>
<?define PeekAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Peek\?>
<?define PeekAssetsFilesPath=$(var.BinDir)Assets\Peek\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="PeekAssetsFolder" Name="Peek" />
</DirectoryRef>
<DirectoryRef Id="PeekAssetsFolder" FileSource="$(var.PeekAssetsFilesPath)">

View File

@@ -4,11 +4,11 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define PowerDisplayAssetsFiles=?>
<?define PowerDisplayAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\PowerDisplay?>
<?define PowerDisplayAssetsFilesPath=$(var.BinDir)Assets\PowerDisplay?>
<Fragment>
<!-- Power Display -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="PowerDisplayAssetsInstallFolder" Name="PowerDisplay" />
</DirectoryRef>
<DirectoryRef Id="PowerDisplayAssetsInstallFolder" FileSource="$(var.PowerDisplayAssetsFilesPath)">

View File

@@ -3,10 +3,10 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define PowerRenameAssetsFiles=?>
<?define PowerRenameAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\PowerRename\?>
<?define PowerRenameAssetsFilesPath=$(var.BinDir)Assets\PowerRename\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="PowerRenameAssetsFolder" Name="PowerRename" />
</DirectoryRef>
<DirectoryRef Id="PowerRenameAssetsFolder" FileSource="$(var.PowerRenameAssetsFilesPath)">

View File

@@ -56,8 +56,9 @@ call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuil
call move /Y ..\..\..\ShortcutGuide.wxs.bk ..\..\..\ShortcutGuide.wxs
call move /Y ..\..\..\Tools.wxs.bk ..\..\..\Tools.wxs
call move /Y ..\..\..\WinAppSDK.wxs.bk ..\..\..\WinAppSDK.wxs
call move /Y ..\..\..\WinUI3Applications.wxs.bk ..\..\..\WinUI3Applications.wxs
call move /Y ..\..\..\Workspaces.wxs.bk ..\..\..\Workspaces.wxs
call move /Y ..\..\..\ContextMenu.wxs.bk ..\..\..\ContextMenu.wxs
</PostBuildEvent>
</PropertyGroup>
<PropertyGroup Condition="'$(RunBuildEvents)'=='false'">
@@ -132,12 +133,13 @@ call powershell.exe -NonInteractive -executionpolicy Unrestricted -File $(MSBuil
<Compile Include="ShortcutGuide.wxs" />
<Compile Include="Tools.wxs" />
<Compile Include="MouseWithoutBorders.wxs" />
<Compile Include="WinUI3Applications.wxs" />
<Compile Include="MonacoSRC.wxs" />
<Compile Include="Core.wxs" />
<Compile Include="Resources.wxs" />
<Compile Include="WinAppSDK.wxs" />
<Compile Include="Workspaces.wxs" />
<Compile Include="ContextMenu.wxs" />
</ItemGroup>
<ItemGroup>
<Folder Include="CustomDialogs" />

View File

@@ -42,7 +42,7 @@
<Feature Id="CoreFeature" Title="PowerToys" AllowAdvertise="no" TypicalDefault="install" Description="Contains all PowerToys features." AllowAbsent="no">
<ComponentGroupRef Id="CoreComponents" />
<ComponentGroupRef Id="BaseApplicationsComponentGroup" />
<ComponentGroupRef Id="WinUI3ApplicationsComponentGroup" />
<ComponentGroupRef Id="AwakeComponentGroup" />
<ComponentGroupRef Id="ColorPickerComponentGroup" />
<ComponentGroupRef Id="FileExplorerPreviewComponentGroup" />
@@ -70,6 +70,7 @@
<ComponentGroupRef Id="MonacoSRCHeatGenerated" />
<ComponentGroupRef Id="WorkspacesComponentGroup" />
<ComponentGroupRef Id="CmdPalComponentGroup" />
<ComponentGroupRef Id="ContextMenuComponentGroup" />
</Feature>
<SetProperty Id="ARPINSTALLLOCATION" Value="[INSTALLFOLDER]" After="CostFinalize" Sequence="execute" />
@@ -188,18 +189,6 @@
<CustomAction Id="SetUpgradeCommandNotFoundParam" Property="UpgradeCommandNotFound" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetCreateWinAppSDKHardlinksParam" Property="CreateWinAppSDKHardlinks" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetDeleteWinAppSDKHardlinksParam" Property="DeleteWinAppSDKHardlinks" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetCreatePTInteropHardlinksParam" Property="CreatePTInteropHardlinks" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetDeletePTInteropHardlinksParam" Property="DeletePTInteropHardlinks" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetCreateDotnetRuntimeHardlinksParam" Property="CreateDotnetRuntimeHardlinks" Value="[INSTALLFOLDER]" />
<CustomAction Id="SetDeleteDotnetRuntimeHardlinksParam" Property="DeleteDotnetRuntimeHardlinks" Value="[INSTALLFOLDER]" />
<CustomAction Id="RemovePowerToysSchTasks" Return="ignore" Impersonate="no" Execute="deferred" DllEntry="RemoveScheduledTasksCA" BinaryRef="PTCustomActions" />
<CustomAction Id="InstallEmbeddedMSIXTask" Return="ignore" Impersonate="yes" DllEntry="InstallEmbeddedMSIXCA" BinaryRef="PTCustomActions" />
@@ -285,12 +274,8 @@
<Directory Id="BaseApplicationsAssetsFolder" Name="Assets">
</Directory>
<Directory Id="DSCModulesReferenceFolder" Name="DSCModules" />
<Directory Id="WinUI3AppsInstallFolder" Name="WinUI3Apps">
<Directory Id="WinUI3AppsMicrosoftUIXamlInstallFolder" Name="Microsoft.UI.Xaml">
<Directory Id="WinUI3AppsMicrosoftUIXamlAssetsInstallFolder" Name="Assets" />
</Directory>
<Directory Id="WinUI3AppsAssetsFolder" Name="Assets">
</Directory>
<Directory Id="MicrosoftUIXamlInstallFolder" Name="Microsoft.UI.Xaml">
<Directory Id="MicrosoftUIXamlAssetsInstallFolder" Name="Assets" />
</Directory>
<Directory Id="ToolsFolder" Name="Tools" />
</Directory>

View File

@@ -3,11 +3,11 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define RegistryPreviewAssetsFiles=?>
<?define RegistryPreviewAssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\RegistryPreview?>
<?define RegistryPreviewAssetsFilesPath=$(var.BinDir)Assets\RegistryPreview?>
<Fragment>
<!-- Registry Preview -->
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="RegistryPreviewAssetsInstallFolder" Name="RegistryPreview" />
</DirectoryRef>
<DirectoryRef Id="RegistryPreviewAssetsInstallFolder" FileSource="$(var.RegistryPreviewAssetsFilesPath)">

View File

@@ -1,4 +1,4 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>

View File

@@ -3,22 +3,22 @@
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define SettingsV2AssetsFiles=?>
<?define SettingsV2AssetsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\?>
<?define SettingsV2AssetsFilesPath=$(var.BinDir)Assets\Settings\?>
<?define SettingsV2AssetsModulesFiles=?>
<?define SettingsV2AssetsModulesFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Modules\?>
<?define SettingsV2AssetsModulesFilesPath=$(var.BinDir)Assets\Settings\Modules\?>
<?define SettingsV2OOBEAssetsModulesFiles=?>
<?define SettingsV2OOBEAssetsModulesFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Modules\OOBE\?>
<?define SettingsV2OOBEAssetsModulesFilesPath=$(var.BinDir)Assets\Settings\Modules\OOBE\?>
<?define SettingsV2OOBEAssetsFluentIconsFiles=?>
<?define SettingsV2OOBEAssetsFluentIconsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Icons\?>
<?define SettingsV2OOBEAssetsFluentIconsFilesPath=$(var.BinDir)Assets\Settings\Icons\?>
<?define SettingsV2IconsModelsFiles=?>
<?define SettingsV2IconsModelsFilesPath=$(var.BinDir)WinUI3Apps\Assets\Settings\Icons\Models\?>
<?define SettingsV2IconsModelsFilesPath=$(var.BinDir)Assets\Settings\Icons\Models\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsAssetsFolder">
<DirectoryRef Id="BaseApplicationsAssetsFolder">
<Directory Id="SettingsV2AssetsInstallFolder" Name="Settings">
<Directory Id="SettingsAppAssetsScriptsFolder" Name="Scripts" />
<Directory Id="SettingsV2OOBEAssetsFluentIconsInstallFolder" Name="Icons">

View File

@@ -1,4 +1,4 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
@@ -6,22 +6,22 @@
<?define WinAppSDKLocLanguageList = af-ZA;ar-SA;az-Latn-AZ;bg-BG;bs-Latn-BA;ca-ES;cs-CZ;cy-GB;da-DK;de-DE;el-GR;en-GB;en-us;es-ES;es-MX;et-EE;eu-ES;fa-IR;fi-FI;fr-CA;fr-FR;gl-ES;he-IL;hi-IN;hr-HR;hu-HU;id-ID;is-IS;it-IT;ja-JP;ka-GE;kk-KZ;ko-KR;lt-LT;lv-LV;ms-MY;nb-NO;nl-NL;nn-NO;pl-PL;pt-BR;pt-PT;ro-RO;ru-RU;sk-SK;sl-SI;sq-AL;sr-Cyrl-RS;sr-Latn-RS;sv-SE;th-TH;tr-TR;uk-UA;vi-VN;zh-CN;zh-TW?>
<Fragment>
<DirectoryRef Id="WinUI3AppsMicrosoftUIXamlAssetsInstallFolder" FileSource="$(var.BinDir)WinUI3Apps\Microsoft.UI.Xaml\Assets">
<DirectoryRef Id="MicrosoftUIXamlAssetsInstallFolder" FileSource="$(var.BinDir)Microsoft.UI.Xaml\Assets">
<Component Id="WinUI3AppsMicrosoftUIXamlAssets_NoiseAsset_256x256_PNG.png" Guid="39889494-838A-4B9A-BD0A-105A1F0161BF" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WinUI3AppsMicrosoftUIXamlAssets_NoiseAsset_256x256_PNG" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WinUI3AppsMicrosoftUIXamlAssetsFile_NoiseAsset_256x256_PNG.png" Source="$(var.BinDir)WinUI3Apps\Microsoft.UI.Xaml\Assets\NoiseAsset_256x256_PNG.png" />
<File Id="WinUI3AppsMicrosoftUIXamlAssetsFile_NoiseAsset_256x256_PNG.png" Source="$(var.BinDir)Microsoft.UI.Xaml\Assets\NoiseAsset_256x256_PNG.png" />
</Component>
<Component Id="WinUI3AppsMicrosoftUIXamlAssets_map.html" Guid="A970464C-A5BC-43DB-ACB3-7D83CF3047B3" Bitness="always64">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WinUI3AppsMicrosoftUIXamlAssets_map" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WinUI3AppsMicrosoftUIXamlAssetsFile_map.html" Source="$(var.BinDir)WinUI3Apps\Microsoft.UI.Xaml\Assets\map.html" />
<File Id="WinUI3AppsMicrosoftUIXamlAssetsFile_map.html" Source="$(var.BinDir)Microsoft.UI.Xaml\Assets\map.html" />
</Component>
</DirectoryRef>
<DirectoryRef Id="WinUI3AppsInstallFolder">
<DirectoryRef Id="INSTALLFOLDER">
<?foreach Language in $(var.WinAppSDKLocLanguageList)?>
<?if $(var.Language) = af-ZA?>
<?define IdSafeLanguage = af_ZA?>
@@ -138,7 +138,7 @@
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?endif?>
<Directory Id="WinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" Name="$(var.Language)" />
<Directory Id="WinAppSDKLoc$(var.IdSafeLanguage)INSTALLFOLDER" Name="$(var.Language)" />
<?undef IdSafeLanguage?>
<?endforeach?>
</DirectoryRef>
@@ -317,17 +317,17 @@
<?define IdSafeLanguage = $(var.Language)?>
<?define CompGUIDPrefix = 51B656B3-2D45-49D8-9871-F0A1C8BEEE?>
<?endif?>
<Component Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_Component" Directory="WinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" Guid="$(var.CompGUIDPrefix)01">
<Component Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_Component" Directory="WinAppSDKLoc$(var.IdSafeLanguage)INSTALLFOLDER" Guid="$(var.CompGUIDPrefix)01">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_Component" Value="" KeyPath="yes" />
</RegistryKey>
<File Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_XamlMui_File" Source="$(var.BinDir)WinUI3Apps\$(var.Language)\Microsoft.ui.xaml.dll.mui" />
<File Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_XamlPhoneMui_File" Source="$(var.BinDir)WinUI3Apps\$(var.Language)\Microsoft.UI.Xaml.Phone.dll.mui" />
<File Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_XamlMui_File" Source="$(var.BinDir)$(var.Language)\Microsoft.ui.xaml.dll.mui" />
<File Id="WinUI3Apps_WinAppSDKLoc_$(var.IdSafeLanguage)_XamlPhoneMui_File" Source="$(var.BinDir)$(var.Language)\Microsoft.UI.Xaml.Phone.dll.mui" />
</Component>
<?undef IdSafeLanguage?>
<?undef CompGUIDPrefix?>
<?endforeach?>
<Component Id="RemoveWinAppSDKFolder" Guid="1BBAA49F-3B2E-455C-A615-EEB079CB9A8B" Directory="WinUI3AppsInstallFolder">
<Component Id="RemoveWinAppSDKFolder" Guid="1BBAA49F-3B2E-455C-A615-EEB079CB9A8B" Directory="INSTALLFOLDER">
<RegistryKey Root="$(var.RegistryScope)" Key="Software\Classes\powertoys\components">
<RegistryValue Type="string" Name="RemoveWinAppSDKFolder" Value="" KeyPath="yes" />
</RegistryKey>
@@ -447,11 +447,11 @@
<?else?>
<?define IdSafeLanguage = $(var.Language)?>
<?endif?>
<RemoveFolder Id="RemoveFolderWinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" Directory="WinAppSDKLoc$(var.IdSafeLanguage)WinUI3AppsInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWinAppSDKLoc$(var.IdSafeLanguage)INSTALLFOLDER" Directory="WinAppSDKLoc$(var.IdSafeLanguage)INSTALLFOLDER" On="uninstall" />
<?undef IdSafeLanguage?>
<?endforeach?>
<RemoveFolder Id="RemoveFolderWinUI3AppsMicrosoftUIXamlInstallFolder" Directory="WinUI3AppsMicrosoftUIXamlInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderWinUI3AppsMicrosoftUIXamlAssetsInstallFolder" Directory="WinUI3AppsMicrosoftUIXamlAssetsInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderMicrosoftUIXamlInstallFolder" Directory="MicrosoftUIXamlInstallFolder" On="uninstall" />
<RemoveFolder Id="RemoveFolderMicrosoftUIXamlAssetsInstallFolder" Directory="MicrosoftUIXamlAssetsInstallFolder" On="uninstall" />
</Component>
<ComponentRef Id="WinUI3AppsMicrosoftUIXamlAssets_NoiseAsset_256x256_PNG.png" />
<ComponentRef Id="WinUI3AppsMicrosoftUIXamlAssets_map.html" />

View File

@@ -1,18 +0,0 @@
<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
<?include $(sys.CURRENTDIR)\Common.wxi?>
<?define WinUI3ApplicationsFiles=?>
<?define WinUI3ApplicationsFilesPath=$(var.BinDir)\WinUI3Apps\?>
<Fragment>
<DirectoryRef Id="WinUI3AppsInstallFolder">
<!-- Generated by generateFileComponents.ps1 -->
<!--WinUI3ApplicationsFiles_Component_Def-->
</DirectoryRef>
<ComponentGroup Id="WinUI3ApplicationsComponentGroup">
</ComponentGroup>
</Fragment>
</Wix>

View File

@@ -30,6 +30,10 @@ Function Generate-FileList() {
$fileInclusionList = @("*.dll", "*.exe", "*.json", "*.msix", "*.png", "*.gif", "*.ico", "*.cur", "*.svg", "index.html", "reg.js", "gitignore.js", "srt.js", "monacoSpecialLanguages.js", "customTokenThemeRules.js", "*.pri")
# MFC DLLs leak into the output via WindowsAppSDKSelfContained but no PowerToys binary imports them.
# Verified with dumpbin /dependents across all binaries — zero consumers.
$fileExclusionList += @("mfc140.dll", "mfc140u.dll", "mfcm140.dll", "mfcm140u.dll")
$dllsToIgnore = @("System.CodeDom.dll", "WindowsBase.dll")
if ($fileDepsJson -eq [string]::Empty) {
@@ -102,6 +106,7 @@ Function Generate-FileComponents() {
"@
foreach ($file in $fileList) {
if ([string]::IsNullOrWhiteSpace($file)) { continue }
$fileTmp = $file -replace "-", "_"
$componentDefs +=
@"
@@ -131,33 +136,11 @@ if ($platform -ceq "arm64") {
}
#BaseApplications
# WORKAROUND: Exclude ImageResizer files that leak into the root output directory.
# ImageResizerCLI (Exe, SelfContained) has a ProjectReference to ImageResizerUI (WinExe, SelfContained).
# MSBuild copies the referenced WinExe's apphost (.exe, .deps.json, .runtimeconfig.json) to the root
# output directory as a side effect. These files are incomplete (missing the managed .dll) and should
# not be included in the installer. The complete ImageResizer files are in WinUI3Apps/ and are handled
# by WinUI3ApplicationsFiles. TODO: Refactor ImageResizer to use a shared Library project instead.
Generate-FileList -fileDepsJson "" -fileListName BaseApplicationsFiles -wxsFilePath $PSScriptRoot\BaseApplications.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release"
# Remove leaked ImageResizer artifacts from BaseApplications
$baseAppWxsPath = "$PSScriptRoot\BaseApplications.wxs"
$baseAppWxs = Get-Content $baseAppWxsPath -Raw
$baseAppWxs = $baseAppWxs -replace 'PowerToys\.ImageResizer\.exe;?', ''
$baseAppWxs = $baseAppWxs -replace 'PowerToys\.ImageResizer\.deps\.json;?', ''
$baseAppWxs = $baseAppWxs -replace 'PowerToys\.ImageResizer\.runtimeconfig\.json;?', ''
# Clean up trailing/double semicolons left after removal
$baseAppWxs = $baseAppWxs -replace ';;+', ';'
$baseAppWxs = $baseAppWxs -replace '=;', '='
$baseAppWxs = $baseAppWxs -replace ';"', '"'
Set-Content -Path $baseAppWxsPath -Value $baseAppWxs
Generate-FileComponents -fileListName "BaseApplicationsFiles" -wxsFilePath $PSScriptRoot\BaseApplications.wxs
#WinUI3Applications
Generate-FileList -fileDepsJson "" -fileListName WinUI3ApplicationsFiles -wxsFilePath $PSScriptRoot\WinUI3Applications.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps"
Generate-FileComponents -fileListName "WinUI3ApplicationsFiles" -wxsFilePath $PSScriptRoot\WinUI3Applications.wxs
#AdvancedPaste
Generate-FileList -fileDepsJson "" -fileListName AdvancedPasteAssetsFiles -wxsFilePath $PSScriptRoot\AdvancedPaste.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\AdvancedPaste"
Generate-FileList -fileDepsJson "" -fileListName AdvancedPasteAssetsFiles -wxsFilePath $PSScriptRoot\AdvancedPaste.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\AdvancedPaste"
Generate-FileComponents -fileListName "AdvancedPasteAssetsFiles" -wxsFilePath $PSScriptRoot\AdvancedPaste.wxs
#AwakeFiles
@@ -169,7 +152,7 @@ Generate-FileList -fileDepsJson "" -fileListName ColorPickerAssetsFiles -wxsFile
Generate-FileComponents -fileListName "ColorPickerAssetsFiles" -wxsFilePath $PSScriptRoot\ColorPicker.wxs
#Environment Variables
Generate-FileList -fileDepsJson "" -fileListName EnvironmentVariablesAssetsFiles -wxsFilePath $PSScriptRoot\EnvironmentVariables.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\EnvironmentVariables"
Generate-FileList -fileDepsJson "" -fileListName EnvironmentVariablesAssetsFiles -wxsFilePath $PSScriptRoot\EnvironmentVariables.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\EnvironmentVariables"
Generate-FileComponents -fileListName "EnvironmentVariablesAssetsFiles" -wxsFilePath $PSScriptRoot\EnvironmentVariables.wxs
#FileExplorerAdd-ons
@@ -179,20 +162,20 @@ Generate-FileComponents -fileListName "MonacoPreviewHandlerMonacoAssetsFiles" -w
Generate-FileComponents -fileListName "MonacoPreviewHandlerCustomLanguagesFiles" -wxsFilePath $PSScriptRoot\FileExplorerPreview.wxs
#FileLocksmith
Generate-FileList -fileDepsJson "" -fileListName FileLocksmithAssetsFiles -wxsFilePath $PSScriptRoot\FileLocksmith.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\FileLocksmith"
Generate-FileList -fileDepsJson "" -fileListName FileLocksmithAssetsFiles -wxsFilePath $PSScriptRoot\FileLocksmith.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\FileLocksmith"
Generate-FileComponents -fileListName "FileLocksmithAssetsFiles" -wxsFilePath $PSScriptRoot\FileLocksmith.wxs
#Hosts
Generate-FileList -fileDepsJson "" -fileListName HostsAssetsFiles -wxsFilePath $PSScriptRoot\Hosts.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Hosts"
Generate-FileList -fileDepsJson "" -fileListName HostsAssetsFiles -wxsFilePath $PSScriptRoot\Hosts.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Hosts"
Generate-FileComponents -fileListName "HostsAssetsFiles" -wxsFilePath $PSScriptRoot\Hosts.wxs
#ImageResizer
Generate-FileList -fileDepsJson "" -fileListName ImageResizerAssetsFiles -wxsFilePath $PSScriptRoot\ImageResizer.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\ImageResizer"
Generate-FileList -fileDepsJson "" -fileListName ImageResizerAssetsFiles -wxsFilePath $PSScriptRoot\ImageResizer.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\ImageResizer"
Generate-FileComponents -fileListName "ImageResizerAssetsFiles" -wxsFilePath $PSScriptRoot\ImageResizer.wxs
#KeyboardManager
Generate-FileList -fileDepsJson "" -fileListName KeyboardManagerAssetsFiles -wxsFilePath $PSScriptRoot\KeyboardManager.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\KeyboardManager"
Generate-FileList -fileDepsJson "" -fileListName KeyboardManagerAssetsWinUI3Files -wxsFilePath $PSScriptRoot\KeyboardManager.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\KeyboardManagerEditor"
Generate-FileList -fileDepsJson "" -fileListName KeyboardManagerAssetsWinUI3Files -wxsFilePath $PSScriptRoot\KeyboardManager.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\KeyboardManagerEditor"
Generate-FileComponents -fileListName "KeyboardManagerAssetsFiles" -wxsFilePath $PSScriptRoot\KeyboardManager.wxs
Generate-FileComponents -fileListName "KeyboardManagerAssetsWinUI3Files" -wxsFilePath $PSScriptRoot\KeyboardManager.wxs
@@ -201,23 +184,23 @@ Generate-FileList -fileDepsJson "" -fileListName LightSwitchFiles -wxsFilePath $
Generate-FileComponents -fileListName "LightSwitchFiles" -wxsFilePath $PSScriptRoot\LightSwitch.wxs
#New+
Generate-FileList -fileDepsJson "" -fileListName NewPlusAssetsFiles -wxsFilePath $PSScriptRoot\NewPlus.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\NewPlus"
Generate-FileList -fileDepsJson "" -fileListName NewPlusAssetsFiles -wxsFilePath $PSScriptRoot\NewPlus.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\NewPlus"
Generate-FileComponents -fileListName "NewPlusAssetsFiles" -wxsFilePath $PSScriptRoot\NewPlus.wxs
#Peek
Generate-FileList -fileDepsJson "" -fileListName PeekAssetsFiles -wxsFilePath $PSScriptRoot\Peek.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Peek\"
Generate-FileList -fileDepsJson "" -fileListName PeekAssetsFiles -wxsFilePath $PSScriptRoot\Peek.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Peek\"
Generate-FileComponents -fileListName "PeekAssetsFiles" -wxsFilePath $PSScriptRoot\Peek.wxs
#PowerRename
Generate-FileList -fileDepsJson "" -fileListName PowerRenameAssetsFiles -wxsFilePath $PSScriptRoot\PowerRename.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\PowerRename\"
Generate-FileList -fileDepsJson "" -fileListName PowerRenameAssetsFiles -wxsFilePath $PSScriptRoot\PowerRename.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\PowerRename\"
Generate-FileComponents -fileListName "PowerRenameAssetsFiles" -wxsFilePath $PSScriptRoot\PowerRename.wxs
#PowerDisplay
Generate-FileList -fileDepsJson "" -fileListName PowerDisplayAssetsFiles -wxsFilePath $PSScriptRoot\PowerDisplay.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\PowerDisplay\"
Generate-FileList -fileDepsJson "" -fileListName PowerDisplayAssetsFiles -wxsFilePath $PSScriptRoot\PowerDisplay.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\PowerDisplay\"
Generate-FileComponents -fileListName "PowerDisplayAssetsFiles" -wxsFilePath $PSScriptRoot\PowerDisplay.wxs
#RegistryPreview
Generate-FileList -fileDepsJson "" -fileListName RegistryPreviewAssetsFiles -wxsFilePath $PSScriptRoot\RegistryPreview.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\RegistryPreview\"
Generate-FileList -fileDepsJson "" -fileListName RegistryPreviewAssetsFiles -wxsFilePath $PSScriptRoot\RegistryPreview.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\RegistryPreview\"
Generate-FileComponents -fileListName "RegistryPreviewAssetsFiles" -wxsFilePath $PSScriptRoot\RegistryPreview.wxs
#Run
@@ -331,11 +314,11 @@ Generate-FileList -fileDepsJson "" -fileListName ShortcutGuideSvgFiles -wxsFileP
Generate-FileComponents -fileListName "ShortcutGuideSvgFiles" -wxsFilePath $PSScriptRoot\ShortcutGuide.wxs
#Settings
Generate-FileList -fileDepsJson "" -fileListName SettingsV2AssetsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2AssetsModulesFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Modules\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2OOBEAssetsModulesFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Modules\OOBE\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2OOBEAssetsFluentIconsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Icons\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2IconsModelsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\WinUI3Apps\Assets\Settings\Icons\Models\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2AssetsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Settings\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2AssetsModulesFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Settings\Modules\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2OOBEAssetsModulesFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Settings\Modules\OOBE\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2OOBEAssetsFluentIconsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Settings\Icons\"
Generate-FileList -fileDepsJson "" -fileListName SettingsV2IconsModelsFiles -wxsFilePath $PSScriptRoot\Settings.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\Assets\Settings\Icons\Models\"
Generate-FileComponents -fileListName "SettingsV2AssetsFiles" -wxsFilePath $PSScriptRoot\Settings.wxs
Generate-FileComponents -fileListName "SettingsV2AssetsModulesFiles" -wxsFilePath $PSScriptRoot\Settings.wxs
Generate-FileComponents -fileListName "SettingsV2OOBEAssetsModulesFiles" -wxsFilePath $PSScriptRoot\Settings.wxs
@@ -349,3 +332,17 @@ Generate-FileComponents -fileListName "WorkspacesImagesComponentFiles" -wxsFileP
#DSC Resources - JSON manifest files in DSCModules subfolder
Generate-FileList -fileDepsJson "" -fileListName DscJsonFiles -wxsFilePath $PSScriptRoot\DscResources.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\DSCModules\"
Generate-FileComponents -fileListName "DscJsonFiles" -wxsFilePath $PSScriptRoot\DscResources.wxs
#ContextMenu - Context menu DLLs and MSIX packages in ContextMenu subfolder
Generate-FileList -fileDepsJson "" -fileListName ContextMenuFiles -wxsFilePath $PSScriptRoot\ContextMenu.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\ContextMenu\"
Generate-FileComponents -fileListName "ContextMenuFiles" -wxsFilePath $PSScriptRoot\ContextMenu.wxs
#ContextMenu Assets - MSIX visual assets duplicated under ContextMenu\Assets\ for sparse package registration
Generate-FileList -fileDepsJson "" -fileListName ContextMenuFileLocksmithAssetsFiles -wxsFilePath $PSScriptRoot\ContextMenu.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\ContextMenu\Assets\FileLocksmith\"
Generate-FileComponents -fileListName "ContextMenuFileLocksmithAssetsFiles" -wxsFilePath $PSScriptRoot\ContextMenu.wxs
Generate-FileList -fileDepsJson "" -fileListName ContextMenuImageResizerAssetsFiles -wxsFilePath $PSScriptRoot\ContextMenu.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\ContextMenu\Assets\ImageResizer\"
Generate-FileComponents -fileListName "ContextMenuImageResizerAssetsFiles" -wxsFilePath $PSScriptRoot\ContextMenu.wxs
Generate-FileList -fileDepsJson "" -fileListName ContextMenuNewPlusAssetsFiles -wxsFilePath $PSScriptRoot\ContextMenu.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\ContextMenu\Assets\NewPlus\"
Generate-FileComponents -fileListName "ContextMenuNewPlusAssetsFiles" -wxsFilePath $PSScriptRoot\ContextMenu.wxs
Generate-FileList -fileDepsJson "" -fileListName ContextMenuPowerRenameAssetsFiles -wxsFilePath $PSScriptRoot\ContextMenu.wxs -depsPath "$PSScriptRoot..\..\..\$platform\Release\ContextMenu\Assets\PowerRename\"
Generate-FileComponents -fileListName "ContextMenuPowerRenameAssetsFiles" -wxsFilePath $PSScriptRoot\ContextMenu.wxs

View File

@@ -48,7 +48,7 @@
AppListEntry="none">
</uap:VisualElements>
</Application>
<Application Id="PowerToys.SettingsUI" Executable="WinUI3Apps\PowerToys.Settings.exe" EntryPoint="Windows.FullTrustApplication">
<Application Id="PowerToys.SettingsUI" Executable="PowerToys.Settings.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements
DisplayName="PowerToys.SettingsUI"
Description="PowerToys Settings UI"
@@ -58,7 +58,7 @@
AppListEntry="none">
</uap:VisualElements>
</Application>
<Application Id="PowerToys.ImageResizerUI" Executable="WinUI3Apps\PowerToys.ImageResizer.exe" EntryPoint="Windows.FullTrustApplication">
<Application Id="PowerToys.ImageResizerUI" Executable="PowerToys.ImageResizer.exe" EntryPoint="Windows.FullTrustApplication">
<uap:VisualElements
DisplayName="PowerToys.ImageResizer"
Description="PowerToys Image Resizer UI"

View File

@@ -41,13 +41,6 @@ namespace Microsoft.PowerToys.FilePreviewCommon
// AppContext.BaseDirectory returns a stray \\ so we want to remove that.
baseDirectory = Path.TrimEndingDirectorySeparator(baseDirectory);
// If the executable is within "WinUI3Apps", correct the path first.
// The idea of GetFileName here is getting the last directory in the path.
if (Path.GetFileName(baseDirectory) == "WinUI3Apps")
{
baseDirectory = Path.Combine(baseDirectory, "..");
}
string monacoPath = Path.Combine(baseDirectory, "Assets", "Monaco");
return Directory.Exists(monacoPath) ?

View File

@@ -1,4 +1,4 @@
// Copyright (c) Microsoft Corporation
// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
@@ -99,14 +99,14 @@ namespace Microsoft.PowerToys.UITest
// Module information including executable name, window name, and optional subdirectory
ModuleInfo = new Dictionary<PowerToysModule, ModuleInfo>
{
[PowerToysModule.PowerToysSettings] = new ModuleInfo("PowerToys.Settings.exe", "PowerToys Settings", "WinUI3Apps"),
[PowerToysModule.PowerToysSettings] = new ModuleInfo("PowerToys.Settings.exe", "PowerToys Settings"),
[PowerToysModule.FancyZone] = new ModuleInfo("PowerToys.FancyZonesEditor.exe", "FancyZones Layout"),
[PowerToysModule.Hosts] = new ModuleInfo("PowerToys.Hosts.exe", "Hosts File Editor", "WinUI3Apps"),
[PowerToysModule.Hosts] = new ModuleInfo("PowerToys.Hosts.exe", "Hosts File Editor"),
[PowerToysModule.Runner] = new ModuleInfo("PowerToys.exe", "PowerToys"),
[PowerToysModule.Workspaces] = new ModuleInfo("PowerToys.WorkspacesEditor.exe", "Workspaces Editor"),
[PowerToysModule.PowerRename] = new ModuleInfo("PowerToys.PowerRename.exe", "PowerRename", "WinUI3Apps"),
[PowerToysModule.CommandPalette] = new ModuleInfo("Microsoft.CmdPal.UI.exe", "PowerToys Command Palette", "WinUI3Apps\\CmdPal"),
[PowerToysModule.ScreenRuler] = new ModuleInfo("PowerToys.MeasureToolUI.exe", "PowerToys.ScreenRuler", "WinUI3Apps"),
[PowerToysModule.PowerRename] = new ModuleInfo("PowerToys.PowerRename.exe", "PowerRename"),
[PowerToysModule.CommandPalette] = new ModuleInfo("Microsoft.CmdPal.UI.exe", "PowerToys Command Palette", "CmdPal"),
[PowerToysModule.ScreenRuler] = new ModuleInfo("PowerToys.MeasureToolUI.exe", "PowerToys.ScreenRuler"),
[PowerToysModule.LightSwitch] = new ModuleInfo("PowerToys.LightSwitch.exe", "PowerToys.LightSwitch", "LightSwitchService"),
};
}

View File

@@ -266,7 +266,7 @@ inline registry::ChangeSet getRegistryPreviewSetDefaultAppChangeSet(const std::w
std::wstring fullAppName = L"PowerToys.RegistryPreview";
std::wstring registryKeyPrefix = L"Software\\Classes\\";
std::wstring appPath = installationDir + L"\\WinUI3Apps\\PowerToys.RegistryPreview.exe";
std::wstring appPath = installationDir + L"\\PowerToys.RegistryPreview.exe";
std::wstring command = appPath + L" \"----ms-protocol:ms-encodedlaunch:App?ContractId=Windows.File&Verb=open&File=%1\"";
changes.push_back({ scope, registryKeyPrefix + fullAppName + L"\\" + L"Application", L"ApplicationName", appName });
@@ -285,11 +285,11 @@ inline registry::ChangeSet getRegistryPreviewChangeSet(const std::wstring instal
vec_t changes;
std::wstring command = installationDir;
command.append(L"\\WinUI3Apps\\PowerToys.RegistryPreview.exe \"%1\"");
command.append(L"\\PowerToys.RegistryPreview.exe \"%1\"");
changes.push_back({ scope, L"Software\\Classes\\regfile\\shell\\preview\\command", std::nullopt, command });
std::wstring icon_path = installationDir;
icon_path.append(L"\\WinUI3Apps\\Assets\\RegistryPreview\\RegistryPreview.ico");
icon_path.append(L"\\Assets\\RegistryPreview\\RegistryPreview.ico");
changes.push_back({ scope, L"Software\\Classes\\regfile\\shell\\preview", L"icon", icon_path });
return { changes };

View File

@@ -262,7 +262,7 @@ class {{module.Name}} {
}
if ($installation) {
$SettingsExePath = Join-Path (Join-Path $installation.InstallLocation WinUI3Apps) PowerToys.Settings.exe
$SettingsExePath = Join-Path $installation.InstallLocation PowerToys.Settings.exe
$SettingsExePath = "`"$SettingsExePath`""
} else {
throw "PowerToys installation wasn't found."
@@ -284,7 +284,7 @@ class {{module.Name}} {
}
if ($installation) {
$SettingsExePath = Join-Path (Join-Path $installation.InstallLocation WinUI3Apps) PowerToys.Settings.exe
$SettingsExePath = Join-Path $installation.InstallLocation PowerToys.Settings.exe
$SettingsExePath = "`"$SettingsExePath`""
} else {
throw "PowerToys installation wasn't found."

View File

@@ -31,6 +31,6 @@
<!-- The following sections assume that the machine we're building on is always x64. That means we won't be able to run/inspect arm64 executables, therefore we must always execute x64 generator. -->
<Target Name="PostBuildAction" AfterTargets="Build" Outputs="$(GeneratedDSCModule)" Condition="'$(Platform)'!='ARM64'">
<Exec Command="&quot;$(OutDir)$(AssemblyName).exe&quot; &quot;..\..\..\x64\$(Configuration)\WinUI3Apps\PowerToys.Settings.UI.Lib.dll&quot; $(GeneratedDSCModule) $(GeneratedDSCManifest)" />
<Exec Command="&quot;$(OutDir)$(AssemblyName).exe&quot; &quot;..\..\..\x64\$(Configuration)\PowerToys.Settings.UI.Lib.dll&quot; $(GeneratedDSCModule) $(GeneratedDSCManifest)" />
</Target>
</Project>

View File

@@ -5,7 +5,7 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)</OutputPath>
<UseWinUI>true</UseWinUI>
<ApplicationIcon>Assets\AdvancedPaste\AdvancedPaste.ico</ApplicationIcon>
<ApplicationManifest>app.manifest</ApplicationManifest>

View File

@@ -104,7 +104,7 @@ HRESULT AdvancedPasteProcessManager::start_process(const std::wstring& pipe_name
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI };
sei.lpFile = L"WinUI3Apps\\PowerToys.AdvancedPaste.exe";
sei.lpFile = L"PowerToys.AdvancedPaste.exe";
sei.nShow = SW_SHOWNORMAL;
sei.lpParameters = executable_args.data();
if (ShellExecuteExW(&sei))

View File

@@ -16,7 +16,7 @@
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
<DefineConstants>DISABLE_XAML_GENERATED_MAIN,TRACE</DefineConstants>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)</OutputPath>
<AssemblyName>PowerToys.EnvironmentVariables</AssemblyName>
<ApplicationIcon>Assets\EnvironmentVariables\EnvironmentVariables.ico</ApplicationIcon>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -35,7 +35,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.EnvironmentVariablesModuleInterface</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">

View File

@@ -96,7 +96,7 @@ private:
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI };
sei.lpFile = L"WinUI3Apps\\PowerToys.EnvironmentVariables.exe";
sei.lpFile = L"PowerToys.EnvironmentVariables.exe";
sei.nShow = SW_SHOWNORMAL;
sei.lpParameters = executable_args.data();

View File

@@ -15,7 +15,7 @@
<TargetName>PowerToys.FileLocksmithContextMenu</TargetName>
<!-- Needs a different int dir to avoid conflicts in msix creation. -->
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\TemporaryBuild\obj\$(ProjectName)\</IntDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
@@ -99,30 +99,30 @@ MakeAppx.exe pack /d . /p $(OutDir)FileLocksmithContextMenuPackage.msix /nv</Com
<None Include="Resources.resx" />
</ItemGroup>
<ItemGroup>
<None Include="Assets\FileLocksmith\FileLocksmith.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\LargeTile.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\SmallTile.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\SplashScreen.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\Square150x150Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\Square44x44Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\storelogo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\FileLocksmith\Wide310x150Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<CopyFileToFolders Include="Assets\FileLocksmith\FileLocksmith.ico">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\LargeTile.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\SmallTile.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\SplashScreen.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\Square150x150Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\Square44x44Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\storelogo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\FileLocksmith\Wide310x150Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\FileLocksmith</DestinationFolders>
</CopyFileToFolders>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(RepoRoot)src\common\SettingsAPI\SettingsAPI.vcxproj">
@@ -155,4 +155,12 @@ MakeAppx.exe pack /d . /p $(OutDir)FileLocksmithContextMenuPackage.msix /nv</Com
<Error Condition="!Exists('$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
</Target>
<!-- Copy MSIX visual assets to ContextMenu\Assets\ for sparse package registration -->
<Target Name="CopyMsixAssetsToContextMenu" AfterTargets="Link">
<ItemGroup>
<_MsixPngs Include="Assets\FileLocksmith\*.png" />
</ItemGroup>
<MakeDir Directories="$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\Assets\FileLocksmith" />
<Copy SourceFiles="@(_MsixPngs)" DestinationFolder="$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\Assets\FileLocksmith\" SkipUnchangedFiles="true" />
</Target>
</Project>

View File

@@ -57,7 +57,7 @@ public:
IFACEMETHODIMP GetIcon(_In_opt_ IShellItemArray*, _Outptr_result_nullonfailure_ PWSTR* icon)
{
std::wstring iconResourcePath = get_module_folderpath(g_hInst);
iconResourcePath += L"\\Assets\\FileLocksmith\\";
iconResourcePath += L"\\..\\Assets\\FileLocksmith\\";
iconResourcePath += L"FileLocksmith.ico";
return SHStrDup(iconResourcePath.c_str(), icon);
}
@@ -113,11 +113,11 @@ public:
}
std::wstring path = get_module_folderpath(g_hInst);
path = path + L"\\PowerToys.FileLocksmithUI.exe";
path = path + L"\\..\\PowerToys.FileLocksmithUI.exe";
HRESULT result;
if (!RunNonElevatedEx(path.c_str(), L"", get_module_folderpath(g_hInst)))
if (!RunNonElevatedEx(path.c_str(), L"", get_module_folderpath(g_hInst) + L"\\.."))
{
result = E_FAIL;
Trace::InvokedRet(result);

View File

@@ -10,7 +10,7 @@
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{57175ec7-92a5-4c1e-8244-e3fbca2a81de}</ProjectGuid>
<RootNamespace>FileLocksmithExt</RootNamespace>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.FileLocksmithExt</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">

View File

@@ -101,7 +101,7 @@ public:
if (package::IsWin11OrGreater())
{
std::wstring path = get_module_folderpath(globals::instance);
std::wstring path = get_module_folderpath(globals::instance) + L"\\ContextMenu";
std::wstring packageUri = path + L"\\FileLocksmithContextMenuPackage.msix";
if (!package::IsPackageRegisteredWithPowerToysVersion(constants::nonlocalizable::ContextMenuPackageName))
{

View File

@@ -27,7 +27,7 @@
<ProjectName>PowerToys.FileLocksmithLib.Interop</ProjectName>
<RootNamespace>PowerToys.FileLocksmithLib.Interop</RootNamespace>
<TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.FileLocksmithLib.Interop</TargetName>
</PropertyGroup>
<PropertyGroup Label="Configuration">

View File

@@ -7,7 +7,7 @@
<AssemblyTitle>PowerToys.FileLocksmith</AssemblyTitle>
<AssemblyDescription>PowerToys File Locksmith</AssemblyDescription>
<OutputType>WinExe</OutputType>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)</OutputPath>
<RootNamespace>PowerToys.FileLocksmithUI</RootNamespace>
<AssemblyName>PowerToys.FileLocksmithUI</AssemblyName>
<ApplicationManifest>app.manifest</ApplicationManifest>

View File

@@ -13,7 +13,7 @@
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)</OutputPath>
<AssemblyName>PowerToys.Hosts</AssemblyName>
<DefineConstants>DISABLE_XAML_GENERATED_MAIN,TRACE</DefineConstants>
<ApplicationIcon>Assets/Hosts/Hosts.ico</ApplicationIcon>

View File

@@ -35,7 +35,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.HostsModuleInterface</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">

View File

@@ -90,7 +90,7 @@ private:
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI };
sei.lpFile = L"WinUI3Apps\\PowerToys.Hosts.exe";
sei.lpFile = L"PowerToys.Hosts.exe";
sei.nShow = SW_SHOWNORMAL;
sei.lpParameters = executable_args.data();

View File

@@ -52,7 +52,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>

View File

@@ -32,7 +32,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.MeasureToolModuleInterface</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">

View File

@@ -104,7 +104,7 @@ private:
SHELLEXECUTEINFOW sei{ sizeof(sei) };
sei.fMask = { SEE_MASK_NOCLOSEPROCESS | SEE_MASK_FLAG_NO_UI };
sei.lpFile = L"WinUI3Apps\\PowerToys.MeasureToolUI.exe";
sei.lpFile = L"PowerToys.MeasureToolUI.exe";
sei.nShow = SW_SHOWNORMAL;
sei.lpParameters = executable_args.data();
if (ShellExecuteExW(&sei))

View File

@@ -7,7 +7,7 @@
<AssemblyTitle>PowerToys.MeasureTool</AssemblyTitle>
<AssemblyDescription>PowerToys MeasureTool</AssemblyDescription>
<OutputType>WinExe</OutputType>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps</OutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)</OutputPath>
<RootNamespace>PowerToys.MeasureToolUI</RootNamespace>
<AssemblyName>PowerToys.MeasureToolUI</AssemblyName>
<ApplicationManifest>app.manifest</ApplicationManifest>

View File

@@ -34,7 +34,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.NewPlus.ShellExtension.win10</TargetName>
<LinkIncremental />
<IgnoreImportLibrary />

View File

@@ -37,14 +37,14 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<TargetExt>.dll</TargetExt>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\</OutDir>
<TargetName>PowerToys.NewPlus.ShellExtension</TargetName>
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\TemporaryBuild\obj\$(ProjectName)\</IntDir>
<LinkIncremental />
<IgnoreImportLibrary />
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\</OutDir>
<TargetName>PowerToys.NewPlus.ShellExtension</TargetName>
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\TemporaryBuild\obj\$(ProjectName)\</IntDir>
<LinkIncremental />
@@ -153,17 +153,17 @@ MakeAppx.exe pack /d . /p $(OutDir)NewPlusPackage.msix /nv</Command>
<CopyFileToFolders Include="TemplateExamples\Any files or folders placed in the template folder are available via New+.txt">
<DeploymentContent>true</DeploymentContent>
<FileType>Document</FileType>
<DestinationFolders>$(OutDir)\Assets\NewPlus\Templates</DestinationFolders>
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus\Templates</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="TemplateExamples\Example folder\Example txt file.txt">
<DeploymentContent>true</DeploymentContent>
<FileType>Document</FileType>
<DestinationFolders>$(OutDir)\Assets\NewPlus\Templates\Example folder</DestinationFolders>
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus\Templates\Example folder</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="TemplateExamples\Example folder\Another example txt file.txt">
<DeploymentContent>true</DeploymentContent>
<FileType>Document</FileType>
<DestinationFolders>$(OutDir)\Assets\NewPlus\Templates\Example folder</DestinationFolders>
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus\Templates\Example folder</DestinationFolders>
</CopyFileToFolders>
</ItemGroup>
<ItemGroup>
@@ -188,39 +188,39 @@ MakeAppx.exe pack /d . /p $(OutDir)NewPlusPackage.msix /nv</Command>
<None Include="new.base.rc" />
</ItemGroup>
<ItemGroup>
<None Include="Assets\NewPlus\LargeTile.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\New_dark.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\New_light.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\Open_templates_dark.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\Open_templates_light.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\SmallTile.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\SplashScreen.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\Square150x150Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\Square44x44Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\StoreLogo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\NewPlus\Wide310x150Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<CopyFileToFolders Include="Assets\NewPlus\LargeTile.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\New_dark.ico">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\New_light.ico">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\Open_templates_dark.ico">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\Open_templates_light.ico">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\SmallTile.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\SplashScreen.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\Square150x150Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\Square44x44Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\StoreLogo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\NewPlus\Wide310x150Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\NewPlus</DestinationFolders>
</CopyFileToFolders>
</ItemGroup>
<ItemGroup>
<None Include="resources.resx">
@@ -242,4 +242,12 @@ MakeAppx.exe pack /d . /p $(OutDir)NewPlusPackage.msix /nv</Command>
<Error Condition="!Exists('$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
</Target>
<!-- Copy MSIX visual assets to ContextMenu\Assets\ for sparse package registration -->
<Target Name="CopyMsixAssetsToContextMenu" AfterTargets="Link">
<ItemGroup>
<_MsixPngs Include="Assets\NewPlus\*.png" />
</ItemGroup>
<MakeDir Directories="$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\Assets\NewPlus" />
<Copy SourceFiles="@(_MsixPngs)" DestinationFolder="$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\Assets\NewPlus\" SkipUnchangedFiles="true" />
</Target>
</Project>

View File

@@ -108,8 +108,7 @@ namespace newplus::utilities
inline std::wstring get_new_icon_resource_filepath(const HMODULE module_instance_handle, const Theme theme)
{
auto iconResourcePath = get_module_folderpath(module_instance_handle);
auto iconResourcePath = get_module_folderpath(module_instance_handle) + L"\\..";
if (theme == Theme::Dark)
{
iconResourcePath += constants::non_localizable::new_icon_dark_resource_relative_path;
@@ -125,7 +124,7 @@ namespace newplus::utilities
inline std::wstring get_open_templates_icon_resource_filepath(const HMODULE module_instance_handle, const Theme theme)
{
auto iconResourcePath = get_module_folderpath(module_instance_handle);
auto iconResourcePath = get_module_folderpath(module_instance_handle) + L"\\..";
if (theme == Theme::Dark)
{
@@ -152,6 +151,8 @@ namespace newplus::utilities
{
if (package::IsWin11OrGreater())
{
// NewPlus DLL is already loaded from ContextMenu\ subfolder,
// so get_module_folderpath() already returns the correct path.
static const auto new_dll_path = get_module_folderpath(module_instance_handle);
auto new_package_uri = new_dll_path + L"\\" + constants::non_localizable::msix_package_name;

View File

@@ -52,7 +52,7 @@ private:
std::string command = "pwsh.exe";
command += " ";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(module_path) + "\\WinUI3Apps\\Assets\\Settings\\Scripts\\EnableModule.ps1" + "\"" + " -scriptPath \"" + winrt::to_string(module_path) + "\"";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(module_path) + "\\Assets\\Settings\\Scripts\\EnableModule.ps1" + "\"" + " -scriptPath \"" + winrt::to_string(module_path) + "\"";
int ret = system(command.c_str());
@@ -73,7 +73,7 @@ private:
std::string command = "pwsh.exe";
command += " ";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(module_path) + "\\WinUI3Apps\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "\"";
command += "-NoProfile -NonInteractive -NoLogo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File \"" + winrt::to_string(module_path) + "\\Assets\\Settings\\Scripts\\DisableModule.ps1" + "\"";
int ret = system(command.c_str());

View File

@@ -238,11 +238,11 @@ public:
#ifdef _M_ARM64
archSubdir = L"ARM64";
#endif
auto msix = package::FindMsixFile(installationFolder + L"\\WinUI3Apps\\CmdPal\\AppPackages\\Microsoft.CmdPal.UI_0.0.1.0_Debug_Test\\", false);
auto dependencies = package::FindMsixFile(installationFolder + L"\\WinUI3Apps\\CmdPal\\AppPackages\\Microsoft.CmdPal.UI_0.0.1.0_Debug_Test\\Dependencies\\" + archSubdir + L"\\", true);
auto msix = package::FindMsixFile(installationFolder + L"\\CmdPal\\AppPackages\\Microsoft.CmdPal.UI_0.0.1.0_Debug_Test\\", false);
auto dependencies = package::FindMsixFile(installationFolder + L"\\CmdPal\\AppPackages\\Microsoft.CmdPal.UI_0.0.1.0_Debug_Test\\Dependencies\\" + archSubdir + L"\\", true);
#else
auto msix = package::FindMsixFile(installationFolder + L"\\WinUI3Apps\\CmdPal\\", false);
auto dependencies = package::FindMsixFile(installationFolder + L"\\WinUI3Apps\\CmdPal\\Dependencies\\", true);
auto msix = package::FindMsixFile(installationFolder + L"\\CmdPal\\", false);
auto dependencies = package::FindMsixFile(installationFolder + L"\\CmdPal\\Dependencies\\", true);
#endif
if (!msix.empty())

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\Common.Dotnet.CsWinRT.props" />
<Import Project="..\..\..\Common.Dotnet.AotCompatibility.props" />
@@ -8,7 +8,7 @@
<!-- For MVVM Toolkit Partial Properties/AOT support -->
<LangVersion>preview</LangVersion>
<OutputPath>..\..\..\$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\</OutputPath>
<OutputPath>..\..\..\$(Platform)\$(Configuration)\CmdPal\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -7,7 +7,7 @@
<Nullable>enable</Nullable>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<!-- For MVVM Toolkit Partial Properties/AOT support -->
<LangVersion>preview</LangVersion>
<!-- Disable SA1313 for Primary Constructor fields conflict https://learn.microsoft.com/dotnet/csharp/programming-guide/classes-and-structs/instance-constructors#primary-constructors -->

View File

@@ -7,7 +7,7 @@
</PropertyGroup>
<PropertyGroup>
<OutputPath>..\..\..\..\$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>..\..\..\..\$(Platform)\$(Configuration)\CmdPal</OutputPath>
<!-- Reset this because the Versioning task might have overwritten it before it knew about OutDir -->
<AppxPackageDir>$(OutputPath)\AppPackages\</AppxPackageDir>
</PropertyGroup>

View File

@@ -201,7 +201,7 @@
<None Include="Microsoft.Terminal.UI.def" />
</ItemGroup>
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\CmdPal\</OutDir>
<IntDir>obj\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<!-- Look at Directory.Build.props in root for common stuff as well -->
<Import Project="..\..\..\..\Common.Dotnet.CsWinRT.props" />
@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Common.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Nullable>enable</Nullable>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.Apps.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.Bookmarks.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.Registry.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.RemoteDesktop.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Nullable>enable</Nullable>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.Shell.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.System.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.TimeDate.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.Ext.WebSearch.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -8,7 +8,7 @@
<RootNamespace>Microsoft.CmdPal.Ext.WindowWalker.UnitTests</RootNamespace>
<!-- This project currently contains shared test helpers only (no test methods). -->
<TestingPlatformDisableCustomTestTarget>true</TestingPlatformDisableCustomTestTarget>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CmdPal.UI.ViewModels.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Nullable>enable</Nullable>

View File

@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<!-- Look at Directory.Build.props in root for common stuff as well -->
<Import Project="..\..\..\..\Common.Dotnet.CsWinRT.props" />
@@ -7,7 +7,7 @@
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
<RootNamespace>Microsoft.CommandPalette.Extensions.Toolkit.UnitTests</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal\tests\</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal\tests\</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Nullable>enable</Nullable>

View File

@@ -2,7 +2,7 @@
$gitRoot = git rev-parse --show-toplevel
Write-output "Checking repo root at $gitroot"
$extensionsRoot = "$gitroot\x64\Debug\WinUI3Apps\CmdPalExtensions"
$extensionsRoot = "$gitroot\x64\Debug\CmdPalExtensions"
Get-ChildItem -Path $extensionsRoot | ForEach-Object {
$extensionName = $_.Name
Write-Host "`e[1m$extensionName`e[m"
@@ -26,9 +26,9 @@ Get-ChildItem -Path $extensionsRoot | ForEach-Object {
}
Write-Host "`e[1mChecking host apps:`e[m"
$hostAppxRoot = "$gitroot/x64/Debug/WinUI3Apps/CmdPal"
$hostAppxRoot = "$gitroot/x64/Debug/CmdPal"
$hostAppxWinmd = $hostAppxRoot + "/Microsoft.CommandPalette.Extensions.winmd"
$prototypeAppxRoot = "$gitroot/x64/Debug/WinUI3Apps/CmdPal.Poc"
$prototypeAppxRoot = "$gitroot/x64/Debug/CmdPal.Poc"
$prototypeAppxWinmd = $hostAppxRoot + "/Microsoft.CommandPalette.Extensions.winmd"
if ((Test-Path $hostAppxWinmd)) {
Write-Host " Found Microsoft.CommandPalette.Extensions.winmd in The Real App's Appx/"

View File

@@ -5,7 +5,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.Apps</RootNamespace>
<Nullable>enable</Nullable>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<DisableRuntimeMarshalling>true</DisableRuntimeMarshalling>

View File

@@ -4,7 +4,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.Bookmarks</RootNamespace>
<Nullable>enable</Nullable>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -4,7 +4,7 @@
<Import Project="..\Common.ExtDependencies.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.Calc</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -4,7 +4,7 @@
<Import Project="..\Common.ExtDependencies.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.ClipboardHistory</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<Nullable>enable</Nullable>

View File

@@ -16,7 +16,7 @@ namespace Microsoft.CmdPal.Ext.Indexer.Commands;
/// </summary>
public sealed partial class PeekFileCommand : InvokableCommand
{
private const string PeekExecutable = @"WinUI3Apps\PowerToys.Peek.UI.exe";
private const string PeekExecutable = @"PowerToys.Peek.UI.exe";
private static readonly Lazy<string> _peekPath = new(GetPeekExecutablePath);

View File

@@ -4,7 +4,7 @@
<Import Project="..\Common.ExtDependencies.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.Indexer</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>

View File

@@ -4,7 +4,7 @@
<Import Project="..\Common.ExtDependencies.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.PerformanceMonitor</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -10,7 +10,7 @@ namespace PowerToysExtension.Helpers;
internal static class PowerToysResourcesHelper
{
private const string AssetsRoot = "Assets\\";
private const string SettingsIconRoot = "WinUI3Apps\\Assets\\Settings\\Icons\\";
private const string SettingsIconRoot = "Assets\\Settings\\Icons\\";
internal static IconInfo IconFromSettingsIcon(string fileName) => IconHelpers.FromRelativePath($"{SettingsIconRoot}{fileName}");

View File

@@ -27,11 +27,11 @@
</PropertyGroup>
<ItemGroup>
<Content Include="..\..\..\..\settings-ui\Settings.UI\Assets\Settings\Icons\*.png" Link="WinUI3Apps\Assets\Settings\Icons\%(Filename)%(Extension)">
<Content Include="..\..\..\..\settings-ui\Settings.UI\Assets\Settings\Icons\*.png" Link="Assets\Settings\Icons\%(Filename)%(Extension)">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<!-- Monochrome icons from PowerToys Run Plugin for debug mode differentiation -->
<Content Include="..\..\..\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.PowerToys\Images\PowerToys.dark.png" Link="WinUI3Apps\Assets\Settings\Icons\PowerToys.dark.png">
<Content Include="..\..\..\launcher\Plugins\Microsoft.PowerToys.Run.Plugin.PowerToys\Images\PowerToys.dark.png" Link="Assets\Settings\Icons\PowerToys.dark.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>

View File

@@ -5,7 +5,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.Registry</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -4,7 +4,7 @@
<Import Project="..\Common.ExtDependencies.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.RemoteDesktop</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -1,10 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\Common.Dotnet.CsWinRT.props" />
<Import Project="..\..\..\..\Common.Dotnet.AotCompatibility.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.Shell</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<ImplicitUsings>enable</ImplicitUsings>

View File

@@ -6,7 +6,7 @@
<PropertyGroup>
<Nullable>enable</Nullable>
<RootNamespace>Microsoft.CmdPal.Ext.System</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -5,7 +5,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.TimeDate</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -5,7 +5,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.WebSearch</RootNamespace>
<Nullable>enable</Nullable>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -8,7 +8,7 @@
<UseWinUI>false</UseWinUI>
<Nullable>enable</Nullable>
<EnableMsixTooling>true</EnableMsixTooling>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -6,7 +6,7 @@
<PropertyGroup>
<Nullable>enable</Nullable>
<RootNamespace>Microsoft.CmdPal.Ext.WindowWalker</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -5,7 +5,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.WindowsServices</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -4,7 +4,7 @@
<Import Project="..\Common.ExtDependencies.props" />
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.WindowsSettings</RootNamespace>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -6,7 +6,7 @@
<PropertyGroup>
<RootNamespace>Microsoft.CmdPal.Ext.WindowsTerminal</RootNamespace>
<!-- <OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPal</OutputPath> -->
<!-- <OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPal</OutputPath> -->
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<!-- MRT from windows app sdk will search for a pri file with the same name of the module before defaulting to resources.pri -->

View File

@@ -7,7 +7,7 @@
<PublishProfile>win-$(Platform).pubxml</PublishProfile>
<UseWinUI>false</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPalExtensions\$(RootNamespace)</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPalExtensions\$(RootNamespace)</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
</PropertyGroup>

View File

@@ -8,7 +8,7 @@
<PublishProfile>win-$(Platform).pubxml</PublishProfile>
<UseWinUI>false</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\WinUI3Apps\CmdPalExtensions\$(RootNamespace)</OutputPath>
<OutputPath>$(SolutionDir)$(Platform)\$(Configuration)\CmdPalExtensions\$(RootNamespace)</OutputPath>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<GenerateAppxPackageOnBuild>true</GenerateAppxPackageOnBuild>

View File

@@ -12,7 +12,7 @@
<Platforms>x64;ARM64</Platforms>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutputPath>
<OutputPath>$(RepoRoot)$(Platform)\$(Configuration)\</OutputPath>
<AssemblyName>PowerToys.ImageResizerCLI</AssemblyName>
<NoWarn>$(NoWarn);SA1500;SA1402;CA1852</NoWarn>
</PropertyGroup>

View File

@@ -34,7 +34,7 @@
<TargetName>PowerToys.ImageResizerContextMenu</TargetName>
<!-- Needs a different int dir to avoid conflicts in msix creation. -->
<IntDir>$(SolutionDir)$(Platform)\$(Configuration)\TemporaryBuild\obj\$(ProjectName)\</IntDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\</OutDir>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
@@ -99,30 +99,30 @@ MakeAppx.exe pack /d "$(MSBuildThisFileDirectory)." /p "$(OutDir)ImageResizerCon
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="Assets\ImageResizer\ImageResizer.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\LargeTile.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\SmallTile.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\SplashScreen.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\Square150x150Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\Square44x44Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\storelogo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Assets\ImageResizer\Wide310x150Logo.png">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<CopyFileToFolders Include="Assets\ImageResizer\ImageResizer.ico">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\LargeTile.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\SmallTile.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\SplashScreen.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\Square150x150Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\Square44x44Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\storelogo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
<CopyFileToFolders Include="Assets\ImageResizer\Wide310x150Logo.png">
<DestinationFolders>$(RepoRoot)$(Platform)\$(Configuration)\Assets\ImageResizer</DestinationFolders>
</CopyFileToFolders>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(RepoRoot)src\common\logger\logger.vcxproj">
@@ -155,4 +155,12 @@ MakeAppx.exe pack /d "$(MSBuildThisFileDirectory)." /p "$(OutDir)ImageResizerCon
<Error Condition="!Exists('$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRoot)packages\Microsoft.Windows.CppWinRT.2.0.250303.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('$(RepoRoot)packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(RepoRoot)packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
</Target>
<!-- Copy MSIX visual assets to ContextMenu\Assets\ for sparse package registration -->
<Target Name="CopyMsixAssetsToContextMenu" AfterTargets="Link">
<ItemGroup>
<_MsixPngs Include="Assets\ImageResizer\*.png" />
</ItemGroup>
<MakeDir Directories="$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\Assets\ImageResizer" />
<Copy SourceFiles="@(_MsixPngs)" DestinationFolder="$(RepoRoot)$(Platform)\$(Configuration)\ContextMenu\Assets\ImageResizer\" SkipUnchangedFiles="true" />
</Target>
</Project>

View File

@@ -59,7 +59,7 @@ public:
IFACEMETHODIMP GetIcon(_In_opt_ IShellItemArray*, _Outptr_result_nullonfailure_ PWSTR* icon)
{
std::wstring iconResourcePath = get_module_folderpath(g_hInst);
iconResourcePath += L"\\Assets\\ImageResizer\\";
iconResourcePath += L"\\..\\Assets\\ImageResizer\\";
iconResourcePath += L"ImageResizer.ico";
return SHStrDup(iconResourcePath.c_str(), icon);
}
@@ -220,7 +220,8 @@ private:
{
// Set the application path based on the location of the dll
std::wstring path = get_module_folderpath(g_hInst);
path = path + L"\\PowerToys.ImageResizer.exe";
std::wstring rootPath = path + L"\\..";
path = rootPath + L"\\PowerToys.ImageResizer.exe";
std::wstring pipe_name(L"\\\\.\\pipe\\powertoys_imageresizerinput_");
UUID temp_uuid;
@@ -243,7 +244,7 @@ private:
uuid_chars = nullptr;
}
create_pipe_thread = std::thread(&ImageResizerContextMenuCommand::StartNamedPipeServerAndSendData, this, pipe_name);
RunNonElevatedEx(path.c_str(), pipe_name, get_module_folderpath(g_hInst));
RunNonElevatedEx(path.c_str(), pipe_name, get_module_folderpath(g_hInst) + L"\\..");
create_pipe_thread.join();
if (hPipe != INVALID_HANDLE_VALUE)

View File

@@ -29,7 +29,7 @@
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
</PropertyGroup>
<PropertyGroup>
<TargetName>PowerToys.$(ProjectName)</TargetName>

View File

@@ -26,7 +26,7 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<IgnoreImportLibrary>true</IgnoreImportLibrary>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\WinUI3Apps\</OutDir>
<OutDir>$(RepoRoot)$(Platform)\$(Configuration)\</OutDir>
<TargetName>PowerToys.ImageResizerExt</TargetName>
</PropertyGroup>
<ItemDefinitionGroup>

View File

@@ -126,7 +126,7 @@ public:
if (package::IsWin11OrGreater())
{
std::wstring path = get_module_folderpath(g_hInst_imageResizer);
std::wstring path = get_module_folderpath(g_hInst_imageResizer) + L"\\ContextMenu";
std::wstring packageUri = path + L"\\ImageResizerContextMenuPackage.msix";
if (!package::IsPackageRegisteredWithPowerToysVersion(ImageResizerConstants::ModulePackageDisplayName))
{

Some files were not shown because too many files have changed in this diff Show More