Skip to content

Conversation

@vmoroz
Copy link
Member

@vmoroz vmoroz commented Dec 16, 2025

Description

Implement Hybrid CRT to improve Windows 10 compatibility for react-native-win32.dll

Type of Change

  • Bug fix (non-breaking change which fixes an issue)

Why

We have reports that react-native-win32.dll fails to load on older Windows 10 versions
that don't have the Visual C++ 2015-2022 Redistributable installed. The DLL currently requires
VCRUNTIME140_1.dll and MSVCP140_1.dll which aren't present out-of-the-box.

What

This PR applies the Hybrid CRT approach used by the Windows App SDK:

  • Static linking: VCRUNTIME and MSVCP (eliminates VCRUNTIME140[d].dll and MSVCP140[d].dll dependencies)
  • Dynamic linking: Universal CRT (ucrt.dll - ships in-box since Windows 10 RTM)

See: https://github.com/microsoft/WindowsAppSDK/blob/main/docs/Coding-Guidelines/HybridCRT.md

Binary size impact: 140,800 bytes (6,199,296 -> 6,340,096), ~2.3% increase.

Implementation details:

  • Created .Hybrid.vcxproj wrapper projects that import base projects with UseHybridCRT=true
  • Base projects conditionally apply HybridCRT.props when UseHybridCRT is set
  • Desktop.DLL references Hybrid variants of static lib dependencies

Testing

  • Confirmed no VCRUNTIME140.dll or MSVCP140.dll in dependency list via dumpbin /dependents

Changelog

Should this change be included in the release notes: yes

Improved Windows 10 compatibility - react-native-win32.dll no longer requires Visual C++ Redistributable to be installed

Microsoft Reviewers: Open in CodeFlow

@vmoroz vmoroz requested review from a team as code owners December 16, 2025 06:03
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.

1 participant