Skip to content

Fix dev setup .vsconfig component IDs for Visual Studio 2026#48824

Open
niels9001 wants to merge 1 commit into
mainfrom
niels9001-dev-setup-currency-check
Open

Fix dev setup .vsconfig component IDs for Visual Studio 2026#48824
niels9001 wants to merge 1 commit into
mainfrom
niels9001-dev-setup-currency-check

Conversation

@niels9001

Copy link
Copy Markdown
Collaborator

Summary

Fixes #48778 — the automated developer setup (winget configure .config\configuration.winget) provisions Visual Studio 2026 but feeds it a .vsconfig containing Visual Studio 2022-era component IDs that were renamed or removed in VS 2026. The VSComponents DSC resource silently skips the invalid IDs, so the Windows 11 SDK (26100) and WindowsAppSDK C# support never install — breaking the build with cppwinrt (exit code 3) and WindowsAppSDK target failures, exactly as reported.

Root cause

PR #45534 bumped .config/configuration.winget from VS 2022 → VS 2026 (Microsoft.VisualStudio.Community, channelId: VisualStudio.18.Release) but left .vsconfig untouched. Five component IDs in .vsconfig are invalid in the VS 2026 (Dev18) catalog:

.vsconfig (old, VS 2022) VS 2026 reality
Component.Windows10SDK.22621 renamed → Component.Windows11SDK.22621
Component.Windows10SDK.26100 renamed → Component.Windows11SDK.26100 (the build's target SDK)
ComponentGroup.WindowsAppSDK.Cs renamed → WindowsAppSdkSupport.CSharp
Component.Windows10SDK.19041 removed from VS 2026 (only a WindowsTargetPlatformMinVersion floor — never a real install requirement)
Component.Windows10SDK.20348 removed from VS 2026 (not referenced by the build)

A single .vsconfig is the source of truth for all three winget variants (configuration.winget, configuration.vsProfessional.winget, configuration.vsEnterprise.winget), which reference it via ${WinGetConfigRoot}\..\.vsconfig, so this one edit fixes every automated path.

Changes

  • Windows10SDK.22621/26100Windows11SDK.22621/26100
  • ComponentGroup.WindowsAppSDK.CsWindowsAppSdkSupport.CSharp, and added WindowsAppSdkSupport.Cpp (PowerToys' C++/WinRT projects need it)
  • Removed Windows10SDK.19041 and Windows10SDK.20348
  • doc/devdocs/readme.md: corrected the 10.0.22621.0 SDK label from "Windows 10 SDK" to "Windows 11 SDK"

Validation

  • All 18 resulting component IDs validated against a live VS 2026 (18.7.0) installation via vswhere -include packages — all present/valid.
  • .vsconfig parses as valid JSON.
  • Build target requirements confirmed from Cpp.Build.props (WindowsTargetPlatformVersion = 10.0.26100.0, min 10.0.19041.0) and Common.Dotnet.CsWinRT.props.

Notes

The docs still list "VS 2022 17.4+" as an alternative; this .vsconfig is aligned to the recommended/automated VS 2026 path. The VS Installer treats any unrecognized component IDs in .vsconfig gracefully (shown as unavailable, non-blocking) for VS 2022 users.

The winget configuration files now provision Visual Studio 2026 (channel 18.Release), but .vsconfig still listed Visual Studio 2022-era component IDs that were renamed or removed in VS 2026. The VSComponents DSC resource silently skipped them, so the Windows 11 SDK (26100) and WindowsAppSDK C# support never installed, breaking the build (cppwinrt / WindowsAppSDK failures).

- Windows10SDK.22621/26100 -> Windows11SDK.22621/26100 (renamed in VS 2026)
- ComponentGroup.WindowsAppSDK.Cs -> WindowsAppSdkSupport.CSharp; added WindowsAppSdkSupport.Cpp
- Removed Windows10SDK.19041 (only a min-version floor) and Windows10SDK.20348 (unused, removed from VS 2026)
- readme: correct '22621' SDK label from Windows 10 to Windows 11

Fixes #48778

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added the Area-Setup/Install Refers to installation mechanism label Jun 24, 2026
@niels9001 niels9001 marked this pull request as ready for review June 24, 2026 15:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Area-Setup/Install Refers to installation mechanism

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Powertools Developer Documentation automated setup not setting up builds correctly

1 participant