Upgrade to Visual Studio 2026 - #16170
Merged
Julio César Rocha (JunielKatarn) merged 30 commits intoMay 28, 2026
Merged
Conversation
Performance Test ResultsBranch: ✅ Passed161 scenario(s) across 28 suite(s) — no regressionsSectionList
FlatList
TouchableOpacity
ScrollView
TouchableHighlight
Pressable
Modal
Image
ActivityIndicator
Switch
Button
TextInput
View
Text
SectionList.native-perf-test.ts
FlatList.native-perf-test.ts
TouchableHighlight.native-perf-test.ts
TouchableOpacity.native-perf-test.ts
Pressable.native-perf-test.ts
ScrollView.native-perf-test.ts
ActivityIndicator.native-perf-test.ts
TextInput.native-perf-test.ts
Switch.native-perf-test.ts
Button.native-perf-test.ts
Modal.native-perf-test.ts
Image.native-perf-test.ts
View.native-perf-test.ts
Text.native-perf-test.ts
|
Julio César Rocha (JunielKatarn)
requested a review
from Vladimir Morozov (vmoroz)
May 23, 2026 05:53
Julio César Rocha (JunielKatarn)
enabled auto-merge (squash)
May 23, 2026 05:54
GetJavaScriptFromServerAsync retuns bundle contents as hstring (16 bit) It then gets converted to an 8-bit string. This conversion drops bytes consideres "invalid". Those bytes are expected as part of the Hermes bundle header. Transmitting the bundle as an IBuffer preserves the original bytes and avoids the conversion issues.
Copilot started reviewing on behalf of
Julio César Rocha (JunielKatarn)
May 27, 2026 22:39
View session
Julio César Rocha (JunielKatarn)
disabled auto-merge
May 27, 2026 22:39
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates React Native Windows tooling and native code paths to support Visual Studio 2026/MSVC 14.5 while preserving compatibility for coroutine-related code that no longer supports the older /await flow.
Changes:
- Updates dependency and health-check metadata for Visual Studio 2026 and .NET 10.
- Gates
/awaitusage to older toolsets and adjusts coroutine handle usage. - Converts bundle/dev-server async loading helpers from
std::futureto WinRT async operations usingIBuffer.
Reviewed changes
Copilot reviewed 21 out of 21 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
vnext/Scripts/rnw-dependencies.ps1 |
Updates VS/.NET dependency checks and install tags. |
packages/@react-native-windows/cli/src/commands/healthCheck/healthCheckList.ts |
Updates displayed health-check requirements. |
packages/@react-native-windows/cli/src/utils/vsInstalls.ts |
Expands VS version search range. |
vnext/PropertySheets/React.Cpp.props |
Gates /await by toolset version. |
vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj |
Gates /await by toolset version. |
vnext/Mso.UnitTests/Mso.UnitTests.vcxproj |
Gates /await by toolset version. |
vnext/Microsoft.ReactNative.IntegrationTests/Microsoft.ReactNative.IntegrationTests.vcxproj |
Gates /await by toolset version. |
vnext/Microsoft.ReactNative.Cxx.UnitTests/Microsoft.ReactNative.Cxx.UnitTests.vcxproj |
Gates /await by toolset version. |
vnext/Desktop.UnitTests/React.Windows.Desktop.UnitTests.vcxproj |
Gates /await by toolset version. |
vnext/Shared/Networking/WinRTWebSocketResource.h |
Switches coroutine handle namespace for newer MSVC. |
vnext/Shared/DevSupportManager.h |
Removes obsolete future include. |
vnext/Shared/DevSupportManager.cpp |
Migrates dev-server fetch/poll helpers to WinRT async operations. |
vnext/Microsoft.ReactNative/Utils/LocalBundleReader.h |
Updates bundle async API/member types to WinRT async buffers. |
vnext/Microsoft.ReactNative/Utils/LocalBundleReader.cpp |
Reads bundle contents through IBuffer and converts at boundaries. |
vnext/Microsoft.ReactNative.CsWinRT/Microsoft.ReactNative.CsWinRT.csproj |
Moves CsWinRT target framework to net8.0. |
vnext/Microsoft.ReactNative.CsWinRT/packages.lock.json |
Updates lockfile for new framework/dependencies. |
vnext/Microsoft.ReactNative.CsWinRT/packages.experimentalwinui3.lock.json |
Updates experimental lockfile for new framework/dependencies. |
vnext/Microsoft.ReactNative.NewArch.sln |
Updates solution metadata for VS 2026. |
vnext/Shared/Shared.vcxitems.filters |
Adds missing filter entry for WebSocketResourceFactory.cpp. |
change/*.json |
Adds prerelease change records. |
| // RuntimeScheduler only handles std::exception or jsi::JSError | ||
| catch (winrt::hresult_error const &e) { | ||
| throw std::exception(winrt::to_string(e.message()).c_str()); | ||
| throw std::runtime_error(winrt::to_string(e.message())); |
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Vladimir Morozov (vmoroz)
approved these changes
May 27, 2026
This was referenced May 28, 2026
Julio César Rocha (JunielKatarn)
merged commit May 28, 2026
b5ff578
into
microsoft:main
33 checks passed
Julio César Rocha (JunielKatarn)
added a commit
that referenced
this pull request
Jun 10, 2026
* Upgrade to PowerShell 7 (#16075) * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Define installNuGetPackages task; Install pwsh 7.6.1 * Replace powershell.exe with pwsh.exe * Change files * CI: Ensure NuGet is availabe before `yarn install` * Add NuGetAuthenticate before yarn install * Do not download PowerShell on CI/CD environments * Fix just-task JS syntax * Add dotnet-tools manifest * Fix pwsh.exe tool path * Resolve dotnet-tools.json path * Use dotnet for `nuget locals` * Use PWSH in nuget-restore-task.js * Break dependency loop in just-task * Update other ADO tasks * Update @react-native-windows/automation * Rename findPwsh as findPowerShell * Drop powershell export from commandWithProgress * Change files * Add README for find-dotnet-tools * Add README to package.json * Adjust newline * Run task `installDotnetTools` only when not in CI * Install .NET tools in CI * Install .NET on prepare-js-env * Do not install .NET tools on CI * Quote powershell path * fix yarn lint * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Restore deleted lock files * Add missing dependency * Use -Command for compatible PWSH calls * Use -Command pwsh argument * Correct runPowerShellScriptFunction cmd escaping * Quote pwsh command in runPowerShellScriptFunction * Remove quotes * Quote remaining findPowerShell() calls for execSync * Add temporary diagnostic commands * Diagnostics * Diagnostics * Diagnostics * Add runPowerShellScriptFunction argument to delegate Appx-related commands to Windows PowerShell * Remove diagnostics steps * Use execFileSync instead of execSync in deploy.ts * Remove querystrings from FS paths * Suppress warning when using `-UseWindowsPowerShell` * Revert "Remove querystrings from FS paths" This reverts commit e1f3cfd. * Use pipe semantics for Get-AppxPackage in resolveAppName * Hard-fail if PowerShell 7 cannot be found. Do not fall back to Windows PowerShell (powershell.exe). PowerShell code may not be backwards compatible. * Improve missing pwsh.exe error message * Add package resolution pipeline test * UseWindowsPowerShell for package resolution test * Try to read package Microsoft.PrintDialog * Replace stderr redirection with -WarningAction * Replace stderr redirection with -WarningAction * Print sample app names on appWindow error * Add more diagnostics * Add missing -WarningAction SilentlyContinue * Revert "Add more diagnostics" This reverts commit 8c10bc4. * Revert "Print sample app names on appWindow error" This reverts commit 6e70148. * Remove CI probing tasks * Revert "Use pipe semantics for Get-AppxPackage in resolveAppName" This reverts commit 6c46c73. Co-authored-by: Copilot <copilot@github.com> * Remove unused escaping logic * Re-introduce deleted .lock.json --------- Co-authored-by: Copilot <copilot@github.com> * Fix PowerShell installation (#16164) * Defer findPowershell to layoutMSRNCxx * Change files * Upgrade to Visual Studio 2026 (#16170) * Update deps script. TODO: test * Upgrade rnw-deps to .NET 10 * Defer findPowershell to layoutMSRNCxx * Upgrade VS version to 18.6.1 * Drop /async in MSVC 14.5 * Replace std::future coroutines with WinRT types * clang format * Change files * Drop Windows10SDK.19041 * Change files * Set TargetFramework to net10.0-windows10.0.26100.0 * Use IAsyncOperation instead of out parameters * Install .NET 10 * Revert "Install .NET 10" This reverts commit 5f75dc0. * Revert "Set TargetFramework to net10.0-windows10.0.26100.0" This reverts commit 22a4791. * clang format * Upgrade CsWinRT.csproj to .NET 8 * Fix filters * Upgrade MSRN SLN to VS 18 * Revert parameter signature in LoadBundleAsync * Update CSWinRT lock * Allow all versions of VS 2026 * Use IBuffer instead of hstring as payload GetJavaScriptFromServerAsync retuns bundle contents as hstring (16 bit) It then gets converted to an 8-bit string. This conversion drops bytes consideres "invalid". Those bytes are expected as part of the Hermes bundle header. Transmitting the bundle as an IBuffer preserves the original bytes and avoids the conversion issues. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Use WinRT exception types instead of std --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Upgrade to GoogleTest Adapter 1.8.1.8 (#16218) * Upgrade to GoogleTest adapter 1.8.1.8 * Change files * Update package lock files * Upgrade CI agents to Windows Server 2025 (#16208) * Use image rnw-img-vs2026-node24 * Update fork-sync/bin.js chmod * Upgrade to MSVC 14.5 * Drop -UseWindowsPowerShell fallback * Manually install yarn * Upgrade to .NET Hosting Bundle 10.0.8 * Change files * Fix change file * Add temp npm install yarn in templates * Test yarn location * update * update * TEMPORARILY revert agent image * Print yarn version in setup * Revert "TEMPORARILY revert agent image" This reverts commit 7c175e1. * update * update * update * Upgrade to msbuildVersion: 18.0 * Update Google test adapter location * Remove unused statement * Remove probing tasks * Upgrade to VSTest@3 * Upgrade more projects and scripts to VS 2026 * Explicitly set vstest.console location * Install midgard-yarn and verdaccio in-place * Fix yarn version * Update node-tests version * Use pwsh in Add-AppDevPackage * Make WindowsStoreAppUtils use PowerShell 7 * Update snapshot values * Update snapshot from failing x86 run * Use the --tag argument for verdaccio under Node 24 * Ignore/warn on unstable click test * Enable WMIC for RN Doctor * Disable RN doctor until it drops WMIC * Add rnw-img-vs2026-node24.json (#16224) * Update CI verdaccio to 6.7.2 (#16223) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 (#16225) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 * Change files * fix: WebSocket binaryType handling — stop unconditional Blob interception of binary messages (#16173) * blob support (#8) * blob support * pr comments * pr comments * Update DefaultBlobResource.cpp * Create react-native-windows-c3827e14-777b-475a-bf00-dc169bf89f3d.json * Add WebSocketArrayBuffer headless test (#9) * Add WebSocketArrayBuffer headless test * Skip test by default * pr comments * Update overrides (#10) --------- Co-authored-by: Julio César Rocha <JunielKatarn@users.noreply.github.com> * Upgrade projects to .NET 10 (#16226) * Upgrade projects to .NET 10 * Upgrade lock files * Change files * Fix missing conflicts * Update packages lock * Remove extra yarn step * Re-introduce JS Desktop integration tests (#16228) * Remove redundant condition Desktop.IntegrationTests.SkipRNTester Modify Desktop.IntegrationTests.Filter instead. * Re-introduce WebSocket and WebSocketBlob tests * Make WSBlob test compare contents * Rename method to RunTest * Handle initial message from default endpoint * Change files * Migrate XHR test * Port Fetch test * Port Blob test * WebSocketMultipleSendTest * Remove JS WebSocket servers * Skip in CI for now * Remove ban-types * Fix DynamicReaderWriterTests * Use WinRT coroutine types for UwpScriptStore * clang format --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Gordon MacMaster <31481849+gmacmaster@users.noreply.github.com>
Julio César Rocha (JunielKatarn)
added a commit
that referenced
this pull request
Jun 12, 2026
* Upgrade to PowerShell 7 (#16075) * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Define installNuGetPackages task; Install pwsh 7.6.1 * Replace powershell.exe with pwsh.exe * Change files * CI: Ensure NuGet is availabe before `yarn install` * Add NuGetAuthenticate before yarn install * Do not download PowerShell on CI/CD environments * Fix just-task JS syntax * Add dotnet-tools manifest * Fix pwsh.exe tool path * Resolve dotnet-tools.json path * Use dotnet for `nuget locals` * Use PWSH in nuget-restore-task.js * Break dependency loop in just-task * Update other ADO tasks * Update @react-native-windows/automation * Rename findPwsh as findPowerShell * Drop powershell export from commandWithProgress * Change files * Add README for find-dotnet-tools * Add README to package.json * Adjust newline * Run task `installDotnetTools` only when not in CI * Install .NET tools in CI * Install .NET on prepare-js-env * Do not install .NET tools on CI * Quote powershell path * fix yarn lint * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Restore deleted lock files * Add missing dependency * Use -Command for compatible PWSH calls * Use -Command pwsh argument * Correct runPowerShellScriptFunction cmd escaping * Quote pwsh command in runPowerShellScriptFunction * Remove quotes * Quote remaining findPowerShell() calls for execSync * Add temporary diagnostic commands * Diagnostics * Diagnostics * Diagnostics * Add runPowerShellScriptFunction argument to delegate Appx-related commands to Windows PowerShell * Remove diagnostics steps * Use execFileSync instead of execSync in deploy.ts * Remove querystrings from FS paths * Suppress warning when using `-UseWindowsPowerShell` * Revert "Remove querystrings from FS paths" This reverts commit e1f3cfd. * Use pipe semantics for Get-AppxPackage in resolveAppName * Hard-fail if PowerShell 7 cannot be found. Do not fall back to Windows PowerShell (powershell.exe). PowerShell code may not be backwards compatible. * Improve missing pwsh.exe error message * Add package resolution pipeline test * UseWindowsPowerShell for package resolution test * Try to read package Microsoft.PrintDialog * Replace stderr redirection with -WarningAction * Replace stderr redirection with -WarningAction * Print sample app names on appWindow error * Add more diagnostics * Add missing -WarningAction SilentlyContinue * Revert "Add more diagnostics" This reverts commit 8c10bc4. * Revert "Print sample app names on appWindow error" This reverts commit 6e70148. * Remove CI probing tasks * Revert "Use pipe semantics for Get-AppxPackage in resolveAppName" This reverts commit 6c46c73. Co-authored-by: Copilot <copilot@github.com> * Remove unused escaping logic * Re-introduce deleted .lock.json --------- Co-authored-by: Copilot <copilot@github.com> * Fix PowerShell installation (#16164) * Defer findPowershell to layoutMSRNCxx * Change files * Upgrade to Visual Studio 2026 (#16170) * Update deps script. TODO: test * Upgrade rnw-deps to .NET 10 * Defer findPowershell to layoutMSRNCxx * Upgrade VS version to 18.6.1 * Drop /async in MSVC 14.5 * Replace std::future coroutines with WinRT types * clang format * Change files * Drop Windows10SDK.19041 * Change files * Set TargetFramework to net10.0-windows10.0.26100.0 * Use IAsyncOperation instead of out parameters * Install .NET 10 * Revert "Install .NET 10" This reverts commit 5f75dc0. * Revert "Set TargetFramework to net10.0-windows10.0.26100.0" This reverts commit 22a4791. * clang format * Upgrade CsWinRT.csproj to .NET 8 * Fix filters * Upgrade MSRN SLN to VS 18 * Revert parameter signature in LoadBundleAsync * Update CSWinRT lock * Allow all versions of VS 2026 * Use IBuffer instead of hstring as payload GetJavaScriptFromServerAsync retuns bundle contents as hstring (16 bit) It then gets converted to an 8-bit string. This conversion drops bytes consideres "invalid". Those bytes are expected as part of the Hermes bundle header. Transmitting the bundle as an IBuffer preserves the original bytes and avoids the conversion issues. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Use WinRT exception types instead of std --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Upgrade to GoogleTest Adapter 1.8.1.8 (#16218) * Upgrade to GoogleTest adapter 1.8.1.8 * Change files * Update package lock files * Upgrade CI agents to Windows Server 2025 (#16208) * Use image rnw-img-vs2026-node24 * Update fork-sync/bin.js chmod * Upgrade to MSVC 14.5 * Drop -UseWindowsPowerShell fallback * Manually install yarn * Upgrade to .NET Hosting Bundle 10.0.8 * Change files * Fix change file * Add temp npm install yarn in templates * Test yarn location * update * update * TEMPORARILY revert agent image * Print yarn version in setup * Revert "TEMPORARILY revert agent image" This reverts commit 7c175e1. * update * update * update * Upgrade to msbuildVersion: 18.0 * Update Google test adapter location * Remove unused statement * Remove probing tasks * Upgrade to VSTest@3 * Upgrade more projects and scripts to VS 2026 * Explicitly set vstest.console location * Install midgard-yarn and verdaccio in-place * Fix yarn version * Update node-tests version * Use pwsh in Add-AppDevPackage * Make WindowsStoreAppUtils use PowerShell 7 * Update snapshot values * Update snapshot from failing x86 run * Use the --tag argument for verdaccio under Node 24 * Ignore/warn on unstable click test * Enable WMIC for RN Doctor * Disable RN doctor until it drops WMIC * Add rnw-img-vs2026-node24.json (#16224) * Update CI verdaccio to 6.7.2 (#16223) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 (#16225) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 * Change files * fix: WebSocket binaryType handling — stop unconditional Blob interception of binary messages (#16173) * blob support (#8) * blob support * pr comments * pr comments * Update DefaultBlobResource.cpp * Create react-native-windows-c3827e14-777b-475a-bf00-dc169bf89f3d.json * Add WebSocketArrayBuffer headless test (#9) * Add WebSocketArrayBuffer headless test * Skip test by default * pr comments * Update overrides (#10) --------- Co-authored-by: Julio César Rocha <JunielKatarn@users.noreply.github.com> * Upgrade projects to .NET 10 (#16226) * Upgrade projects to .NET 10 * Upgrade lock files * Change files * Update yarn lock * Re-introduce JS Desktop integration tests (#16228) * Remove redundant condition Desktop.IntegrationTests.SkipRNTester Modify Desktop.IntegrationTests.Filter instead. * Re-introduce WebSocket and WebSocketBlob tests * Make WSBlob test compare contents * Rename method to RunTest * Handle initial message from default endpoint * Change files * Migrate XHR test * Port Fetch test * Port Blob test * WebSocketMultipleSendTest * Remove JS WebSocket servers * Skip in CI for now * Update yarn lock * Add missing find-dotnet-tools * Fix DynamicReaderWriterTests * Update yarn lock * Use WinRT coroutine types for UwpScriptStore * clang format --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Gordon MacMaster <31481849+gmacmaster@users.noreply.github.com>
Julio César Rocha (JunielKatarn)
added a commit
that referenced
this pull request
Jun 12, 2026
* Upgrade to PowerShell 7 (#16075) * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Define installNuGetPackages task; Install pwsh 7.6.1 * Replace powershell.exe with pwsh.exe * Change files * CI: Ensure NuGet is availabe before `yarn install` * Add NuGetAuthenticate before yarn install * Do not download PowerShell on CI/CD environments * Fix just-task JS syntax * Add dotnet-tools manifest * Fix pwsh.exe tool path * Resolve dotnet-tools.json path * Use dotnet for `nuget locals` * Use PWSH in nuget-restore-task.js * Break dependency loop in just-task * Update other ADO tasks * Update @react-native-windows/automation * Rename findPwsh as findPowerShell * Drop powershell export from commandWithProgress * Change files * Add README for find-dotnet-tools * Add README to package.json * Adjust newline * Run task `installDotnetTools` only when not in CI * Install .NET tools in CI * Install .NET on prepare-js-env * Do not install .NET tools on CI * Quote powershell path * fix yarn lint * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Restore deleted lock files * Add missing dependency * Use -Command for compatible PWSH calls * Use -Command pwsh argument * Correct runPowerShellScriptFunction cmd escaping * Quote pwsh command in runPowerShellScriptFunction * Remove quotes * Quote remaining findPowerShell() calls for execSync * Add temporary diagnostic commands * Diagnostics * Diagnostics * Diagnostics * Add runPowerShellScriptFunction argument to delegate Appx-related commands to Windows PowerShell * Remove diagnostics steps * Use execFileSync instead of execSync in deploy.ts * Remove querystrings from FS paths * Suppress warning when using `-UseWindowsPowerShell` * Revert "Remove querystrings from FS paths" This reverts commit e1f3cfd. * Use pipe semantics for Get-AppxPackage in resolveAppName * Hard-fail if PowerShell 7 cannot be found. Do not fall back to Windows PowerShell (powershell.exe). PowerShell code may not be backwards compatible. * Improve missing pwsh.exe error message * Add package resolution pipeline test * UseWindowsPowerShell for package resolution test * Try to read package Microsoft.PrintDialog * Replace stderr redirection with -WarningAction * Replace stderr redirection with -WarningAction * Print sample app names on appWindow error * Add more diagnostics * Add missing -WarningAction SilentlyContinue * Revert "Add more diagnostics" This reverts commit 8c10bc4. * Revert "Print sample app names on appWindow error" This reverts commit 6e70148. * Remove CI probing tasks * Revert "Use pipe semantics for Get-AppxPackage in resolveAppName" This reverts commit 6c46c73. Co-authored-by: Copilot <copilot@github.com> * Remove unused escaping logic * Re-introduce deleted .lock.json --------- Co-authored-by: Copilot <copilot@github.com> * Fix PowerShell installation (#16164) * Defer findPowershell to layoutMSRNCxx * Change files * Upgrade to Visual Studio 2026 (#16170) * Update deps script. TODO: test * Upgrade rnw-deps to .NET 10 * Defer findPowershell to layoutMSRNCxx * Upgrade VS version to 18.6.1 * Drop /async in MSVC 14.5 * Replace std::future coroutines with WinRT types * clang format * Change files * Drop Windows10SDK.19041 * Change files * Set TargetFramework to net10.0-windows10.0.26100.0 * Use IAsyncOperation instead of out parameters * Install .NET 10 * Revert "Install .NET 10" This reverts commit 5f75dc0. * Revert "Set TargetFramework to net10.0-windows10.0.26100.0" This reverts commit 22a4791. * clang format * Upgrade CsWinRT.csproj to .NET 8 * Fix filters * Upgrade MSRN SLN to VS 18 * Revert parameter signature in LoadBundleAsync * Update CSWinRT lock * Allow all versions of VS 2026 * Use IBuffer instead of hstring as payload GetJavaScriptFromServerAsync retuns bundle contents as hstring (16 bit) It then gets converted to an 8-bit string. This conversion drops bytes consideres "invalid". Those bytes are expected as part of the Hermes bundle header. Transmitting the bundle as an IBuffer preserves the original bytes and avoids the conversion issues. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Use WinRT exception types instead of std --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Upgrade to GoogleTest Adapter 1.8.1.8 (#16218) * Upgrade to GoogleTest adapter 1.8.1.8 * Change files * Update package lock files * Upgrade CI agents to Windows Server 2025 (#16208) * Use image rnw-img-vs2026-node24 * Update fork-sync/bin.js chmod * Upgrade to MSVC 14.5 * Drop -UseWindowsPowerShell fallback * Manually install yarn * Upgrade to .NET Hosting Bundle 10.0.8 * Change files * Fix change file * Add temp npm install yarn in templates * Test yarn location * update * update * TEMPORARILY revert agent image * Print yarn version in setup * Revert "TEMPORARILY revert agent image" This reverts commit 7c175e1. * update * update * update * Upgrade to msbuildVersion: 18.0 * Update Google test adapter location * Remove unused statement * Remove probing tasks * Upgrade to VSTest@3 * Upgrade more projects and scripts to VS 2026 * Explicitly set vstest.console location * Install midgard-yarn and verdaccio in-place * Fix yarn version * Update node-tests version * Use pwsh in Add-AppDevPackage * Make WindowsStoreAppUtils use PowerShell 7 * Update snapshot values * Update snapshot from failing x86 run * Use the --tag argument for verdaccio under Node 24 * Ignore/warn on unstable click test * Enable WMIC for RN Doctor * Disable RN doctor until it drops WMIC * Add rnw-img-vs2026-node24.json (#16224) * Update CI verdaccio to 6.7.2 (#16223) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 (#16225) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 * Change files * fix: WebSocket binaryType handling — stop unconditional Blob interception of binary messages (#16173) * blob support (#8) * blob support * pr comments * pr comments * Update DefaultBlobResource.cpp * Create react-native-windows-c3827e14-777b-475a-bf00-dc169bf89f3d.json * Add WebSocketArrayBuffer headless test (#9) * Add WebSocketArrayBuffer headless test * Skip test by default * pr comments * Update overrides (#10) --------- Co-authored-by: Julio César Rocha <JunielKatarn@users.noreply.github.com> * Upgrade projects to .NET 10 (#16226) * Upgrade projects to .NET 10 * Upgrade lock files * Change files * Remove nuget restore task * Re-introduce JS Desktop integration tests (#16228) * Remove redundant condition Desktop.IntegrationTests.SkipRNTester Modify Desktop.IntegrationTests.Filter instead. * Re-introduce WebSocket and WebSocketBlob tests * Make WSBlob test compare contents * Rename method to RunTest * Handle initial message from default endpoint * Change files * Migrate XHR test * Port Fetch test * Port Blob test * WebSocketMultipleSendTest * Remove JS WebSocket servers * Skip in CI for now * Add missing find-dotnet-tool entries * Update package locks * Fix DynamicReaderWriterTests * Fix HermesSamplingProfiler for MSVC 14.5 * Update package locks * Use WinRT coroutine types for UwpScriptStore --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Gordon MacMaster <31481849+gmacmaster@users.noreply.github.com>
Julio César Rocha (JunielKatarn)
added a commit
that referenced
this pull request
Jun 13, 2026
* Upgrade to PowerShell 7 (#16075) * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Define installNuGetPackages task; Install pwsh 7.6.1 * Replace powershell.exe with pwsh.exe * Change files * CI: Ensure NuGet is availabe before `yarn install` * Add NuGetAuthenticate before yarn install * Do not download PowerShell on CI/CD environments * Fix just-task JS syntax * Add dotnet-tools manifest * Fix pwsh.exe tool path * Resolve dotnet-tools.json path * Use dotnet for `nuget locals` * Use PWSH in nuget-restore-task.js * Break dependency loop in just-task * Update other ADO tasks * Update @react-native-windows/automation * Rename findPwsh as findPowerShell * Drop powershell export from commandWithProgress * Change files * Add README for find-dotnet-tools * Add README to package.json * Adjust newline * Run task `installDotnetTools` only when not in CI * Install .NET tools in CI * Install .NET on prepare-js-env * Do not install .NET tools on CI * Quote powershell path * fix yarn lint * Ran NuGetRestoreForceEvaluateAllSolutions.ps1 * Restore deleted lock files * Add missing dependency * Use -Command for compatible PWSH calls * Use -Command pwsh argument * Correct runPowerShellScriptFunction cmd escaping * Quote pwsh command in runPowerShellScriptFunction * Remove quotes * Quote remaining findPowerShell() calls for execSync * Add temporary diagnostic commands * Diagnostics * Diagnostics * Diagnostics * Add runPowerShellScriptFunction argument to delegate Appx-related commands to Windows PowerShell * Remove diagnostics steps * Use execFileSync instead of execSync in deploy.ts * Remove querystrings from FS paths * Suppress warning when using `-UseWindowsPowerShell` * Revert "Remove querystrings from FS paths" This reverts commit e1f3cfd. * Use pipe semantics for Get-AppxPackage in resolveAppName * Hard-fail if PowerShell 7 cannot be found. Do not fall back to Windows PowerShell (powershell.exe). PowerShell code may not be backwards compatible. * Improve missing pwsh.exe error message * Add package resolution pipeline test * UseWindowsPowerShell for package resolution test * Try to read package Microsoft.PrintDialog * Replace stderr redirection with -WarningAction * Replace stderr redirection with -WarningAction * Print sample app names on appWindow error * Add more diagnostics * Add missing -WarningAction SilentlyContinue * Revert "Add more diagnostics" This reverts commit 8c10bc4. * Revert "Print sample app names on appWindow error" This reverts commit 6e70148. * Remove CI probing tasks * Revert "Use pipe semantics for Get-AppxPackage in resolveAppName" This reverts commit 6c46c73. Co-authored-by: Copilot <copilot@github.com> * Remove unused escaping logic * Re-introduce deleted .lock.json --------- Co-authored-by: Copilot <copilot@github.com> * Fix PowerShell installation (#16164) * Defer findPowershell to layoutMSRNCxx * Change files * Upgrade to Visual Studio 2026 (#16170) * Update deps script. TODO: test * Upgrade rnw-deps to .NET 10 * Defer findPowershell to layoutMSRNCxx * Upgrade VS version to 18.6.1 * Drop /async in MSVC 14.5 * Replace std::future coroutines with WinRT types * clang format * Change files * Drop Windows10SDK.19041 * Change files * Set TargetFramework to net10.0-windows10.0.26100.0 * Use IAsyncOperation instead of out parameters * Install .NET 10 * Revert "Install .NET 10" This reverts commit 5f75dc0. * Revert "Set TargetFramework to net10.0-windows10.0.26100.0" This reverts commit 22a4791. * clang format * Upgrade CsWinRT.csproj to .NET 8 * Fix filters * Upgrade MSRN SLN to VS 18 * Revert parameter signature in LoadBundleAsync * Update CSWinRT lock * Allow all versions of VS 2026 * Use IBuffer instead of hstring as payload GetJavaScriptFromServerAsync retuns bundle contents as hstring (16 bit) It then gets converted to an 8-bit string. This conversion drops bytes consideres "invalid". Those bytes are expected as part of the Hermes bundle header. Transmitting the bundle as an IBuffer preserves the original bytes and avoids the conversion issues. * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Use WinRT exception types instead of std --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Upgrade to GoogleTest Adapter 1.8.1.8 (#16218) * Upgrade to GoogleTest adapter 1.8.1.8 * Change files * Update package lock files * Upgrade CI agents to Windows Server 2025 (#16208) * Use image rnw-img-vs2026-node24 * Update fork-sync/bin.js chmod * Upgrade to MSVC 14.5 * Drop -UseWindowsPowerShell fallback * Manually install yarn * Upgrade to .NET Hosting Bundle 10.0.8 * Change files * Fix change file * Add temp npm install yarn in templates * Test yarn location * update * update * TEMPORARILY revert agent image * Print yarn version in setup * Revert "TEMPORARILY revert agent image" This reverts commit 7c175e1. * update * update * update * Upgrade to msbuildVersion: 18.0 * Update Google test adapter location * Remove unused statement * Remove probing tasks * Upgrade to VSTest@3 * Upgrade more projects and scripts to VS 2026 * Explicitly set vstest.console location * Install midgard-yarn and verdaccio in-place * Fix yarn version * Update node-tests version * Use pwsh in Add-AppDevPackage * Make WindowsStoreAppUtils use PowerShell 7 * Update snapshot values * Update snapshot from failing x86 run * Use the --tag argument for verdaccio under Node 24 * Ignore/warn on unstable click test * Enable WMIC for RN Doctor * Disable RN doctor until it drops WMIC * Add rnw-img-vs2026-node24.json (#16224) * Update CI verdaccio to 6.7.2 (#16223) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 (#16225) * Upgrade to Microsoft.WindowsAppSDK 1.8.260508005 * Change files * fix: WebSocket binaryType handling — stop unconditional Blob interception of binary messages (#16173) * blob support (#8) * blob support * pr comments * pr comments * Update DefaultBlobResource.cpp * Create react-native-windows-c3827e14-777b-475a-bf00-dc169bf89f3d.json * Add WebSocketArrayBuffer headless test (#9) * Add WebSocketArrayBuffer headless test * Skip test by default * pr comments * Update overrides (#10) --------- Co-authored-by: Julio César Rocha <JunielKatarn@users.noreply.github.com> * Upgrade projects to .NET 10 (#16226) * Upgrade projects to .NET 10 * Upgrade lock files * Change files * Update yarn lock * Re-introduce JS Desktop integration tests (#16228) * Remove redundant condition Desktop.IntegrationTests.SkipRNTester Modify Desktop.IntegrationTests.Filter instead. * Re-introduce WebSocket and WebSocketBlob tests * Make WSBlob test compare contents * Rename method to RunTest * Handle initial message from default endpoint * Change files * Migrate XHR test * Port Fetch test * Port Blob test * WebSocketMultipleSendTest * Remove JS WebSocket servers * Skip in CI for now * Update yarn lock * Remove ban-types * Fix DynamicReaderWriterTests * Use WinRT coroutine types for UwpScriptStore * clang format * yarn lint --------- Co-authored-by: Copilot <copilot@github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Gordon MacMaster <31481849+gmacmaster@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add support for Visual Studio 2026 (MSVC 14.5).
Type of Change
Erase all that don't apply.
Why
Visual Studio 2026 has reached enouth adoption and maturity to be considered the standard IDE for Windows development.
Keeping Visual Studio 2022 as the default may force developers to have two different VS versions in their computers.
What
std::futureas coroutines to WinRT async types.Note: Used
IBufferinstead ofhstringbecause the 16 to 8 bit string conversion functions could drop non-printable bytes which are needed for Hermes bundle headers.Microsoft Reviewers: Open in CodeFlow