Skip to content

perf: reference only the Windows App SDK components the app uses - #140

Merged
nextestudios merged 2 commits into
mainfrom
feature/85-trim-winappsdk
Sep 27, 2026
Merged

nextestudios merged 2 commits into
mainfrom
feature/85-trim-winappsdk

Conversation

@nextestudios

Copy link
Copy Markdown
Owner

Summary

  • Replace the Microsoft.WindowsAppSDK 2.5.1 metapackage with the component packages the app uses, pinned to the metapackage's versions: Microsoft.WindowsAppSDK.WinUI 2.3.9, .Foundation 2.3.12, .InteractiveExperiences 2.1.9, .Base 2.0.4. Drops AI/ML (ONNX Runtime), Widgets, Search, DWriteCore and the Runtime MSIX redistributables.
  • Without Microsoft.WindowsAppSDK.Runtime the SDK defaults to self-contained (as we already ship). On non-Windows the csproj compiles framework-dependent only for the compile check (bootstrap/deployment initializers off), so the Mac compile keeps working; packages are always built on Windows with WindowsAppSDKSelfContained=true.
  • Publish-ControlFS.ps1 now prints each package's size.
  • Docs: decision 0001 (risk resolved, numbers), build-and-release, THIRD_PARTY_NOTICES, TESTING (clean-machine check), both changelogs.

Measurements (Publish-ControlFS.ps1 in the manual Smoke workflow)

Package Before (v0.4.0-alpha.1 release) After (smoke run)
ControlFS-Portable-x64.exe 97,158,726 B (92.7 MiB) 72,180,436 B (68.8 MiB) — −25.7%
ControlFS-Setup-x64.exe 65,251,261 B (62.2 MiB) 47,514,995 B (45.3 MiB) — −27.2%

In the same smoke run the portable exe and the installed app both launched ("Janela ativada") and --render-screens rendered every screen at 720p–4K.

Tests

  • CI: build + unit tests.
  • Smoke (manual workflow, run on this branch): portable launch, install/launch/uninstall, screen rendering — green.
  • Manual: clean Windows 10 without Windows App Runtime (docs/TESTING.md).

Closes #85

🤖 Generated with Claude Code

nextestudios and others added 2 commits September 27, 2026 01:45
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@nextestudios
nextestudios force-pushed the feature/85-trim-winappsdk branch from a6f2e9d to bccb18e Compare September 27, 2026 04:45
@nextestudios
nextestudios merged commit 75bfe94 into main Sep 27, 2026
1 check passed
@nextestudios
nextestudios deleted the feature/85-trim-winappsdk branch September 27, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

enhancement: reduce package size by trimming unused Windows App SDK components

1 participant