From 6e4bbdbdf49fd8864a8a4ef2c4495f247b6eec80 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 04:23:14 +0000 Subject: [PATCH 01/17] Update CI pipeline to support Visual Studio 2026 Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- .ado/compliance.yml | 4 +- .ado/continuous.yml | 6 +- .ado/image/rnw-img-vs2026-node22.json | 66 +++++++++++++++++++ .ado/integrate-rn.yaml | 2 +- .ado/publish.yml | 4 +- .../discover-google-test-adapter.yml | 2 +- .ado/templates/msbuild-sln.yml | 4 +- .ado/windows-vs-pr-secure.yml | 6 +- .ado/windows-vs-pr.yml | 6 +- 9 files changed, 83 insertions(+), 17 deletions(-) create mode 100644 .ado/image/rnw-img-vs2026-node22.json diff --git a/.ado/compliance.yml b/.ado/compliance.yml index 659bb734967..9c9af7b113c 100644 --- a/.ado/compliance.yml +++ b/.ado/compliance.yml @@ -6,10 +6,10 @@ parameters: default: Medium: name: rnw-pool-4-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 - name: forceCodeQL displayName: Force CodeQL to rebuild databases type: boolean diff --git a/.ado/continuous.yml b/.ado/continuous.yml index f20e680ad11..05d81201a25 100644 --- a/.ado/continuous.yml +++ b/.ado/continuous.yml @@ -13,13 +13,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 stages: - template: stages.yml diff --git a/.ado/image/rnw-img-vs2026-node22.json b/.ado/image/rnw-img-vs2026-node22.json new file mode 100644 index 00000000000..ffb97c40810 --- /dev/null +++ b/.ado/image/rnw-img-vs2026-node22.json @@ -0,0 +1,66 @@ +{ + "imageType": "Managed", + "baseImage": "/MicrosoftWindowsServer/WindowsServer/2022-datacenter/latest", + "artifacts": [ + { + "name": "windows-EnableDeveloperMode" + }, + { + "name": "windows-enable-long-paths" + }, + { + "name": "windows-gitinstall" + }, + { + "name": "windows-AzPipeline-ImageHelpers" + }, + { + "name": "windows-AzPipeline-InitializeVM" + }, + { + "name": "windows-AzPipeline-powershellCore" + }, + { + "name": "windows-AzPipeline-7zip" + }, + { + "name": "windows-visualstudio-bootstrapper", + "parameters": { + "Workloads": "--add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.Universal --add Microsoft.Component.MSBuild --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.ComponentGroup.UWP.Support --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core --add Microsoft.VisualStudio.Component.Windows10SDK.19041 Microsoft.VisualStudio.Component.Windows11SDK.22621 --add Microsoft.VisualStudio.ComponentGroup.UWP.VC --includeRecommended --includeOptional", + "SKU": "Enterprise", + "VSBootstrapperURL": "https://aka.ms/vs/18/release/vs_Enterprise.exe" + } + }, + { + "name": "Windows-NodeJS", + "parameters": { + "Version": "22.14.0" + } + }, + { + "name": "windows-npm-global", + "parameters": { + "packages": "yarn@1.22.19, midgard-yarn@1.23.34, verdaccio@5.2.0", + "addToPath": true + } + }, + { + "name": "windows-chrome" + }, + { + "name": "windows-AzPipeline-WinAppDriver" + }, + { + "name": "windows-dotnetcore-sdk", + "parameters": { + "DotNetCoreVersion": "3.1.425" + } + }, + { + "name": "windows-dotnetcore-sdk", + "parameters": { + "DotNetCoreVersion": "8.0.413" + } + } + ] +} diff --git a/.ado/integrate-rn.yaml b/.ado/integrate-rn.yaml index 092d0424f76..32d904413d3 100644 --- a/.ado/integrate-rn.yaml +++ b/.ado/integrate-rn.yaml @@ -14,7 +14,7 @@ variables: - group: RNW Secrets pool: - vmImage: windows-2022 + vmImage: windows-2025 jobs: - job: IntegrateRN diff --git a/.ado/publish.yml b/.ado/publish.yml index 1401f45cf6d..7c3ee6b768a 100644 --- a/.ado/publish.yml +++ b/.ado/publish.yml @@ -22,10 +22,10 @@ parameters: default: Medium: name: rnw-pool-4-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 - name: desktopBuildMatrix type: object diff --git a/.ado/templates/discover-google-test-adapter.yml b/.ado/templates/discover-google-test-adapter.yml index d2e63281ac1..5255932b97f 100644 --- a/.ado/templates/discover-google-test-adapter.yml +++ b/.ado/templates/discover-google-test-adapter.yml @@ -1,7 +1,7 @@ steps: - powershell: | - $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\"; + $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2026\Enterprise\Common7\IDE\Extensions\"; $GoogleTestAdapterPath=(Get-ChildItem $vsExtensionPath -Directory | Where-Object -FilterScript {Test-Path (Join-Path -Path $_.FullName -ChildPath "GoogleTestAdapter.Core.dll")}).FullName # Test the path to the google test adapter diff --git a/.ado/templates/msbuild-sln.yml b/.ado/templates/msbuild-sln.yml index 56d7bc62222..cad12f63a16 100644 --- a/.ado/templates/msbuild-sln.yml +++ b/.ado/templates/msbuild-sln.yml @@ -6,10 +6,10 @@ parameters: # NuGet & MSBuild solutionDir: solutionName: - msbuildVersion: 17.0 + msbuildVersion: 18.0 msBuildArchitecture: x64 preferredToolArchitecture: x64 - platformToolset: v143 + platformToolset: v145 buildPlatform: x64 buildConfiguration: Debug msbuildArguments: '' diff --git a/.ado/windows-vs-pr-secure.yml b/.ado/windows-vs-pr-secure.yml index 3601bce96c8..9e85a6fb26f 100644 --- a/.ado/windows-vs-pr-secure.yml +++ b/.ado/windows-vs-pr-secure.yml @@ -16,13 +16,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 stages: - template: stages.yml diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index ae79db81131..b15c5535aaa 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -16,13 +16,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 stages: - template: stages.yml From 790f1230b70960c0033a54e034da295bdae4c0a7 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 04:43:22 +0000 Subject: [PATCH 02/17] Update rnw-dependencies.ps1 to support VS2026 Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- vnext/Scripts/rnw-dependencies.ps1 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vnext/Scripts/rnw-dependencies.ps1 b/vnext/Scripts/rnw-dependencies.ps1 index 7d401ba3b67..955381ba4ac 100644 --- a/vnext/Scripts/rnw-dependencies.ps1 +++ b/vnext/Scripts/rnw-dependencies.ps1 @@ -8,7 +8,7 @@ param( [string]$Check = [CheckId]::All, [Parameter(ValueFromRemainingArguments)] - [ValidateSet('appDev', 'rnwDev', 'buildLab', 'vs2022', 'clone')] + [ValidateSet('appDev', 'rnwDev', 'buildLab', 'vs2026', 'clone')] [String[]]$Tags = @('appDev'), [switch]$Enterprise = $false ) @@ -113,7 +113,7 @@ $wingetver = "1.7.11261"; # The minimum VS version to check for # Note: For install to work, whatever min version you specify here must be met by the current package available on winget. -$vsver = "17.11.0"; +$vsver = "18.0.0"; # The exact .NET SDK version to check for $dotnetver = "8.0"; @@ -242,9 +242,9 @@ function InstallVS { if ($Enterprise) { # The CI machines need the enterprise version of VS as that is what is hardcoded in all the scripts - WinGetInstall Microsoft.VisualStudio.2022.Enterprise + WinGetInstall Microsoft.VisualStudio.2026.Enterprise } else { - WinGetInstall Microsoft.VisualStudio.2022.Community + WinGetInstall Microsoft.VisualStudio.2026.Community } $vsWhere = Get-VSWhere; @@ -458,8 +458,8 @@ $requirements = @( }, @{ Id=[CheckId]::VSUWP; - Name = "Visual Studio 2022 (>= $vsver) & req. components"; - Tags = @('appDev', 'vs2022'); + Name = "Visual Studio 2026 (>= $vsver) & req. components"; + Tags = @('appDev', 'vs2026'); Valid = { CheckVS; } Install = { InstallVS }; HasVerboseOutput = $true; From 55fcd3bcc64efd8141fc6d61536b7df8608c542a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 04:56:25 +0000 Subject: [PATCH 03/17] Add change file for VS2026 CI pipeline updates Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- ...ative-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json diff --git a/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json b/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json new file mode 100644 index 00000000000..a4951eee2b6 --- /dev/null +++ b/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Update CI pipelines and dependency scripts to support Visual Studio 2026", + "packageName": "react-native-windows", + "email": "copilot@github.com", + "dependentChangeType": "patch" +} From d83f77b8dfcdf26eafc08cc3dd87e392a7c7a76b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 05:27:15 +0000 Subject: [PATCH 04/17] Revert to VS2022 images as VS2026 image doesn't exist in agent pools yet Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- .ado/compliance.yml | 4 +- .ado/continuous.yml | 6 +- .ado/image/rnw-img-vs2026-node22.json | 66 ------------------- .ado/integrate-rn.yaml | 2 +- .ado/publish.yml | 4 +- .../discover-google-test-adapter.yml | 2 +- .ado/templates/msbuild-sln.yml | 4 +- .ado/windows-vs-pr-secure.yml | 6 +- .ado/windows-vs-pr.yml | 6 +- ...-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json | 7 -- vnext/Scripts/rnw-dependencies.ps1 | 12 ++-- 11 files changed, 23 insertions(+), 96 deletions(-) delete mode 100644 .ado/image/rnw-img-vs2026-node22.json delete mode 100644 change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json diff --git a/.ado/compliance.yml b/.ado/compliance.yml index 9c9af7b113c..659bb734967 100644 --- a/.ado/compliance.yml +++ b/.ado/compliance.yml @@ -6,10 +6,10 @@ parameters: default: Medium: name: rnw-pool-4-microsoft - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Large: name: rnw-pool-8-microsoft - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 - name: forceCodeQL displayName: Force CodeQL to rebuild databases type: boolean diff --git a/.ado/continuous.yml b/.ado/continuous.yml index 05d81201a25..f20e680ad11 100644 --- a/.ado/continuous.yml +++ b/.ado/continuous.yml @@ -13,13 +13,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 stages: - template: stages.yml diff --git a/.ado/image/rnw-img-vs2026-node22.json b/.ado/image/rnw-img-vs2026-node22.json deleted file mode 100644 index ffb97c40810..00000000000 --- a/.ado/image/rnw-img-vs2026-node22.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "imageType": "Managed", - "baseImage": "/MicrosoftWindowsServer/WindowsServer/2022-datacenter/latest", - "artifacts": [ - { - "name": "windows-EnableDeveloperMode" - }, - { - "name": "windows-enable-long-paths" - }, - { - "name": "windows-gitinstall" - }, - { - "name": "windows-AzPipeline-ImageHelpers" - }, - { - "name": "windows-AzPipeline-InitializeVM" - }, - { - "name": "windows-AzPipeline-powershellCore" - }, - { - "name": "windows-AzPipeline-7zip" - }, - { - "name": "windows-visualstudio-bootstrapper", - "parameters": { - "Workloads": "--add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.Universal --add Microsoft.Component.MSBuild --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.ComponentGroup.UWP.Support --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core --add Microsoft.VisualStudio.Component.Windows10SDK.19041 Microsoft.VisualStudio.Component.Windows11SDK.22621 --add Microsoft.VisualStudio.ComponentGroup.UWP.VC --includeRecommended --includeOptional", - "SKU": "Enterprise", - "VSBootstrapperURL": "https://aka.ms/vs/18/release/vs_Enterprise.exe" - } - }, - { - "name": "Windows-NodeJS", - "parameters": { - "Version": "22.14.0" - } - }, - { - "name": "windows-npm-global", - "parameters": { - "packages": "yarn@1.22.19, midgard-yarn@1.23.34, verdaccio@5.2.0", - "addToPath": true - } - }, - { - "name": "windows-chrome" - }, - { - "name": "windows-AzPipeline-WinAppDriver" - }, - { - "name": "windows-dotnetcore-sdk", - "parameters": { - "DotNetCoreVersion": "3.1.425" - } - }, - { - "name": "windows-dotnetcore-sdk", - "parameters": { - "DotNetCoreVersion": "8.0.413" - } - } - ] -} diff --git a/.ado/integrate-rn.yaml b/.ado/integrate-rn.yaml index 32d904413d3..092d0424f76 100644 --- a/.ado/integrate-rn.yaml +++ b/.ado/integrate-rn.yaml @@ -14,7 +14,7 @@ variables: - group: RNW Secrets pool: - vmImage: windows-2025 + vmImage: windows-2022 jobs: - job: IntegrateRN diff --git a/.ado/publish.yml b/.ado/publish.yml index 7c3ee6b768a..1401f45cf6d 100644 --- a/.ado/publish.yml +++ b/.ado/publish.yml @@ -22,10 +22,10 @@ parameters: default: Medium: name: rnw-pool-4-microsoft - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Large: name: rnw-pool-8-microsoft - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 - name: desktopBuildMatrix type: object diff --git a/.ado/templates/discover-google-test-adapter.yml b/.ado/templates/discover-google-test-adapter.yml index 5255932b97f..d2e63281ac1 100644 --- a/.ado/templates/discover-google-test-adapter.yml +++ b/.ado/templates/discover-google-test-adapter.yml @@ -1,7 +1,7 @@ steps: - powershell: | - $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2026\Enterprise\Common7\IDE\Extensions\"; + $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\"; $GoogleTestAdapterPath=(Get-ChildItem $vsExtensionPath -Directory | Where-Object -FilterScript {Test-Path (Join-Path -Path $_.FullName -ChildPath "GoogleTestAdapter.Core.dll")}).FullName # Test the path to the google test adapter diff --git a/.ado/templates/msbuild-sln.yml b/.ado/templates/msbuild-sln.yml index cad12f63a16..56d7bc62222 100644 --- a/.ado/templates/msbuild-sln.yml +++ b/.ado/templates/msbuild-sln.yml @@ -6,10 +6,10 @@ parameters: # NuGet & MSBuild solutionDir: solutionName: - msbuildVersion: 18.0 + msbuildVersion: 17.0 msBuildArchitecture: x64 preferredToolArchitecture: x64 - platformToolset: v145 + platformToolset: v143 buildPlatform: x64 buildConfiguration: Debug msbuildArguments: '' diff --git a/.ado/windows-vs-pr-secure.yml b/.ado/windows-vs-pr-secure.yml index 9e85a6fb26f..3601bce96c8 100644 --- a/.ado/windows-vs-pr-secure.yml +++ b/.ado/windows-vs-pr-secure.yml @@ -16,13 +16,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 stages: - template: stages.yml diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index b15c5535aaa..ae79db81131 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -16,13 +16,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2026-node22 + demands: ImageOverride -equals rnw-img-vs2022-node22 stages: - template: stages.yml diff --git a/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json b/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json deleted file mode 100644 index a4951eee2b6..00000000000 --- a/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "type": "prerelease", - "comment": "Update CI pipelines and dependency scripts to support Visual Studio 2026", - "packageName": "react-native-windows", - "email": "copilot@github.com", - "dependentChangeType": "patch" -} diff --git a/vnext/Scripts/rnw-dependencies.ps1 b/vnext/Scripts/rnw-dependencies.ps1 index 955381ba4ac..7d401ba3b67 100644 --- a/vnext/Scripts/rnw-dependencies.ps1 +++ b/vnext/Scripts/rnw-dependencies.ps1 @@ -8,7 +8,7 @@ param( [string]$Check = [CheckId]::All, [Parameter(ValueFromRemainingArguments)] - [ValidateSet('appDev', 'rnwDev', 'buildLab', 'vs2026', 'clone')] + [ValidateSet('appDev', 'rnwDev', 'buildLab', 'vs2022', 'clone')] [String[]]$Tags = @('appDev'), [switch]$Enterprise = $false ) @@ -113,7 +113,7 @@ $wingetver = "1.7.11261"; # The minimum VS version to check for # Note: For install to work, whatever min version you specify here must be met by the current package available on winget. -$vsver = "18.0.0"; +$vsver = "17.11.0"; # The exact .NET SDK version to check for $dotnetver = "8.0"; @@ -242,9 +242,9 @@ function InstallVS { if ($Enterprise) { # The CI machines need the enterprise version of VS as that is what is hardcoded in all the scripts - WinGetInstall Microsoft.VisualStudio.2026.Enterprise + WinGetInstall Microsoft.VisualStudio.2022.Enterprise } else { - WinGetInstall Microsoft.VisualStudio.2026.Community + WinGetInstall Microsoft.VisualStudio.2022.Community } $vsWhere = Get-VSWhere; @@ -458,8 +458,8 @@ $requirements = @( }, @{ Id=[CheckId]::VSUWP; - Name = "Visual Studio 2026 (>= $vsver) & req. components"; - Tags = @('appDev', 'vs2026'); + Name = "Visual Studio 2022 (>= $vsver) & req. components"; + Tags = @('appDev', 'vs2022'); Valid = { CheckVS; } Install = { InstallVS }; HasVerboseOutput = $true; From 33579de88aeeee125ca504d8aa3a0ab8a896ea92 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 05:34:29 +0000 Subject: [PATCH 05/17] Revert back to VS2026 CI pipeline configuration Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- .ado/compliance.yml | 4 +- .ado/continuous.yml | 6 +- .ado/image/rnw-img-vs2026-node22.json | 66 +++++++++++++++++++ .ado/integrate-rn.yaml | 2 +- .ado/publish.yml | 4 +- .../discover-google-test-adapter.yml | 2 +- .ado/templates/msbuild-sln.yml | 4 +- .ado/windows-vs-pr-secure.yml | 6 +- .ado/windows-vs-pr.yml | 6 +- ...-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json | 7 ++ vnext/Scripts/rnw-dependencies.ps1 | 12 ++-- 11 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 .ado/image/rnw-img-vs2026-node22.json create mode 100644 change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json diff --git a/.ado/compliance.yml b/.ado/compliance.yml index 659bb734967..9c9af7b113c 100644 --- a/.ado/compliance.yml +++ b/.ado/compliance.yml @@ -6,10 +6,10 @@ parameters: default: Medium: name: rnw-pool-4-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 - name: forceCodeQL displayName: Force CodeQL to rebuild databases type: boolean diff --git a/.ado/continuous.yml b/.ado/continuous.yml index f20e680ad11..05d81201a25 100644 --- a/.ado/continuous.yml +++ b/.ado/continuous.yml @@ -13,13 +13,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 stages: - template: stages.yml diff --git a/.ado/image/rnw-img-vs2026-node22.json b/.ado/image/rnw-img-vs2026-node22.json new file mode 100644 index 00000000000..ffb97c40810 --- /dev/null +++ b/.ado/image/rnw-img-vs2026-node22.json @@ -0,0 +1,66 @@ +{ + "imageType": "Managed", + "baseImage": "/MicrosoftWindowsServer/WindowsServer/2022-datacenter/latest", + "artifacts": [ + { + "name": "windows-EnableDeveloperMode" + }, + { + "name": "windows-enable-long-paths" + }, + { + "name": "windows-gitinstall" + }, + { + "name": "windows-AzPipeline-ImageHelpers" + }, + { + "name": "windows-AzPipeline-InitializeVM" + }, + { + "name": "windows-AzPipeline-powershellCore" + }, + { + "name": "windows-AzPipeline-7zip" + }, + { + "name": "windows-visualstudio-bootstrapper", + "parameters": { + "Workloads": "--add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NativeDesktop --add Microsoft.VisualStudio.Workload.Universal --add Microsoft.Component.MSBuild --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64 --add Microsoft.VisualStudio.ComponentGroup.UWP.Support --add Microsoft.VisualStudio.ComponentGroup.NativeDesktop.Core --add Microsoft.VisualStudio.Component.Windows10SDK.19041 Microsoft.VisualStudio.Component.Windows11SDK.22621 --add Microsoft.VisualStudio.ComponentGroup.UWP.VC --includeRecommended --includeOptional", + "SKU": "Enterprise", + "VSBootstrapperURL": "https://aka.ms/vs/18/release/vs_Enterprise.exe" + } + }, + { + "name": "Windows-NodeJS", + "parameters": { + "Version": "22.14.0" + } + }, + { + "name": "windows-npm-global", + "parameters": { + "packages": "yarn@1.22.19, midgard-yarn@1.23.34, verdaccio@5.2.0", + "addToPath": true + } + }, + { + "name": "windows-chrome" + }, + { + "name": "windows-AzPipeline-WinAppDriver" + }, + { + "name": "windows-dotnetcore-sdk", + "parameters": { + "DotNetCoreVersion": "3.1.425" + } + }, + { + "name": "windows-dotnetcore-sdk", + "parameters": { + "DotNetCoreVersion": "8.0.413" + } + } + ] +} diff --git a/.ado/integrate-rn.yaml b/.ado/integrate-rn.yaml index 092d0424f76..32d904413d3 100644 --- a/.ado/integrate-rn.yaml +++ b/.ado/integrate-rn.yaml @@ -14,7 +14,7 @@ variables: - group: RNW Secrets pool: - vmImage: windows-2022 + vmImage: windows-2025 jobs: - job: IntegrateRN diff --git a/.ado/publish.yml b/.ado/publish.yml index 1401f45cf6d..7c3ee6b768a 100644 --- a/.ado/publish.yml +++ b/.ado/publish.yml @@ -22,10 +22,10 @@ parameters: default: Medium: name: rnw-pool-4-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8-microsoft - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 - name: desktopBuildMatrix type: object diff --git a/.ado/templates/discover-google-test-adapter.yml b/.ado/templates/discover-google-test-adapter.yml index d2e63281ac1..5255932b97f 100644 --- a/.ado/templates/discover-google-test-adapter.yml +++ b/.ado/templates/discover-google-test-adapter.yml @@ -1,7 +1,7 @@ steps: - powershell: | - $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\Extensions\"; + $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2026\Enterprise\Common7\IDE\Extensions\"; $GoogleTestAdapterPath=(Get-ChildItem $vsExtensionPath -Directory | Where-Object -FilterScript {Test-Path (Join-Path -Path $_.FullName -ChildPath "GoogleTestAdapter.Core.dll")}).FullName # Test the path to the google test adapter diff --git a/.ado/templates/msbuild-sln.yml b/.ado/templates/msbuild-sln.yml index 56d7bc62222..cad12f63a16 100644 --- a/.ado/templates/msbuild-sln.yml +++ b/.ado/templates/msbuild-sln.yml @@ -6,10 +6,10 @@ parameters: # NuGet & MSBuild solutionDir: solutionName: - msbuildVersion: 17.0 + msbuildVersion: 18.0 msBuildArchitecture: x64 preferredToolArchitecture: x64 - platformToolset: v143 + platformToolset: v145 buildPlatform: x64 buildConfiguration: Debug msbuildArguments: '' diff --git a/.ado/windows-vs-pr-secure.yml b/.ado/windows-vs-pr-secure.yml index 3601bce96c8..9e85a6fb26f 100644 --- a/.ado/windows-vs-pr-secure.yml +++ b/.ado/windows-vs-pr-secure.yml @@ -16,13 +16,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 stages: - template: stages.yml diff --git a/.ado/windows-vs-pr.yml b/.ado/windows-vs-pr.yml index ae79db81131..b15c5535aaa 100644 --- a/.ado/windows-vs-pr.yml +++ b/.ado/windows-vs-pr.yml @@ -16,13 +16,13 @@ parameters: default: Small: name: rnw-pool-2 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Medium: name: rnw-pool-4 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 Large: name: rnw-pool-8 - demands: ImageOverride -equals rnw-img-vs2022-node22 + demands: ImageOverride -equals rnw-img-vs2026-node22 stages: - template: stages.yml diff --git a/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json b/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json new file mode 100644 index 00000000000..a4951eee2b6 --- /dev/null +++ b/change/react-native-windows-8937bbd5-d2f3-4e7b-bf61-571de9bb7e7c.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Update CI pipelines and dependency scripts to support Visual Studio 2026", + "packageName": "react-native-windows", + "email": "copilot@github.com", + "dependentChangeType": "patch" +} diff --git a/vnext/Scripts/rnw-dependencies.ps1 b/vnext/Scripts/rnw-dependencies.ps1 index 7d401ba3b67..955381ba4ac 100644 --- a/vnext/Scripts/rnw-dependencies.ps1 +++ b/vnext/Scripts/rnw-dependencies.ps1 @@ -8,7 +8,7 @@ param( [string]$Check = [CheckId]::All, [Parameter(ValueFromRemainingArguments)] - [ValidateSet('appDev', 'rnwDev', 'buildLab', 'vs2022', 'clone')] + [ValidateSet('appDev', 'rnwDev', 'buildLab', 'vs2026', 'clone')] [String[]]$Tags = @('appDev'), [switch]$Enterprise = $false ) @@ -113,7 +113,7 @@ $wingetver = "1.7.11261"; # The minimum VS version to check for # Note: For install to work, whatever min version you specify here must be met by the current package available on winget. -$vsver = "17.11.0"; +$vsver = "18.0.0"; # The exact .NET SDK version to check for $dotnetver = "8.0"; @@ -242,9 +242,9 @@ function InstallVS { if ($Enterprise) { # The CI machines need the enterprise version of VS as that is what is hardcoded in all the scripts - WinGetInstall Microsoft.VisualStudio.2022.Enterprise + WinGetInstall Microsoft.VisualStudio.2026.Enterprise } else { - WinGetInstall Microsoft.VisualStudio.2022.Community + WinGetInstall Microsoft.VisualStudio.2026.Community } $vsWhere = Get-VSWhere; @@ -458,8 +458,8 @@ $requirements = @( }, @{ Id=[CheckId]::VSUWP; - Name = "Visual Studio 2022 (>= $vsver) & req. components"; - Tags = @('appDev', 'vs2022'); + Name = "Visual Studio 2026 (>= $vsver) & req. components"; + Tags = @('appDev', 'vs2026'); Valid = { CheckVS; } Install = { InstallVS }; HasVerboseOutput = $true; From 8216eefe8f5acbd43e1d08f0d7ba6de740069295 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 06:11:26 +0000 Subject: [PATCH 06/17] Update msbuildtools to detect both VS2022 and VS2026 Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- .../src/commands/healthCheck/healthCheckList.ts | 2 +- .../cli/src/utils/vsInstalls.ts | 17 +++++++++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/packages/@react-native-windows/cli/src/commands/healthCheck/healthCheckList.ts b/packages/@react-native-windows/cli/src/commands/healthCheck/healthCheckList.ts index 6e34f37cfe2..ce843054415 100644 --- a/packages/@react-native-windows/cli/src/commands/healthCheck/healthCheckList.ts +++ b/packages/@react-native-windows/cli/src/commands/healthCheck/healthCheckList.ts @@ -11,7 +11,7 @@ export const HealthCheckList = [ [true, 'WindowsVersion', 'Windows version >= 10.0.17763.0'], [true, 'DeveloperMode', 'Developer mode is on'], [true, 'LongPath', 'Long path support is enabled'], - [true, 'VSUWP', 'Visual Studio 2022 (>= 17.11.0) & req. components'], + [true, 'VSUWP', 'Visual Studio 2022/2026 (>= 17.11.0) & req. components'], [true, 'Node', 'Node.js (LTS, >= 22.0)'], [true, 'Yarn', 'Yarn'], [true, 'DotNetCore', '.NET SDK (LTS, = 8.0)'], diff --git a/packages/@react-native-windows/cli/src/utils/vsInstalls.ts b/packages/@react-native-windows/cli/src/utils/vsInstalls.ts index 856cb052f7e..a8fb9c6bb95 100644 --- a/packages/@react-native-windows/cli/src/utils/vsInstalls.ts +++ b/packages/@react-native-windows/cli/src/utils/vsInstalls.ts @@ -72,6 +72,8 @@ export function enumerateVsInstalls(opts: { if (opts.minVersion) { // VS 2019 ex: minVersion == 16.7 => [16.7,17.0) // VS 2022 ex: minVersion == 17.0 => [17.0,18.0) + // VS 2026 ex: minVersion == 18.0 => [18.0,19.0) + // To support both VS2022 and VS2026 with minVersion == 17.11.0 => [17.11.0,19.0) // Try to parse minVersion as both a Number and SemVer const minVersionNum = Number(opts.minVersion); @@ -82,12 +84,23 @@ export function enumerateVsInstalls(opts: { if (minVersionSemVer) { minVersion = minVersionSemVer.toString(); - maxVersion = `${minVersionSemVer.major + 1}.0`; + // Support VS2022 (17.x) and VS2026 (18.x) by extending max version range + // If minVersion is 17.x, allow up to 19.0 to include both VS2022 and VS2026 + if (minVersionSemVer.major === 17) { + maxVersion = '19.0'; + } else { + maxVersion = `${minVersionSemVer.major + 1}.0`; + } } else if (!Number.isNaN(minVersionNum)) { minVersion = Number.isInteger(minVersionNum) ? `${minVersionNum}.0` : minVersionNum.toString(); - maxVersion = `${Math.floor(minVersionNum) + 1}.0`; + // Support VS2022 (17.x) and VS2026 (18.x) by extending max version range + if (Math.floor(minVersionNum) === 17) { + maxVersion = '19.0'; + } else { + maxVersion = `${Math.floor(minVersionNum) + 1}.0`; + } } else { // Unable to parse minVersion and determine maxVersion, // caller will throw error that version couldn't be found. From da64c4bb955bab396999f74855816a2cf29b5112 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 06:19:22 +0000 Subject: [PATCH 07/17] Add change file for @react-native-windows/cli VS2026 support Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- ...e-windows-cli-002e73df-5d25-4cd4-a961-260859f23672.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@react-native-windows-cli-002e73df-5d25-4cd4-a961-260859f23672.json diff --git a/change/@react-native-windows-cli-002e73df-5d25-4cd4-a961-260859f23672.json b/change/@react-native-windows-cli-002e73df-5d25-4cd4-a961-260859f23672.json new file mode 100644 index 00000000000..7f0d16bfd82 --- /dev/null +++ b/change/@react-native-windows-cli-002e73df-5d25-4cd4-a961-260859f23672.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Add Visual Studio 2026 detection support alongside VS2022", + "packageName": "@react-native-windows/cli", + "email": "copilot@github.com", + "dependentChangeType": "patch" +} From 1995a8a0d5be8310d1809b1b98db4bd27b1b8634 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Dec 2025 04:55:12 +0000 Subject: [PATCH 08/17] Update VS project files to require VS2026 (version 18.0) Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- ...ation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json | 7 +++++++ ...ows-telemetry-3893fb9f-9108-4564-b5a0-bfec87c5c562.json | 7 +++++++ .../automation-channel/windows/AutomationChannel.sln | 4 ++-- .../windows/AutomationChannel/AutomationChannel.vcxproj | 2 +- .../UsesPackageReference/UsesPackageReference.csproj | 2 +- .../projects/UsesPackagesConfig/UsesPackagesConfig.vcxproj | 2 +- 6 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json create mode 100644 change/@react-native-windows-telemetry-3893fb9f-9108-4564-b5a0-bfec87c5c562.json diff --git a/change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json b/change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json new file mode 100644 index 00000000000..2feb8395e80 --- /dev/null +++ b/change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", + "packageName": "@react-native-windows/automation-channel", + "email": "copilot@github.com", + "dependentChangeType": "patch" +} diff --git a/change/@react-native-windows-telemetry-3893fb9f-9108-4564-b5a0-bfec87c5c562.json b/change/@react-native-windows-telemetry-3893fb9f-9108-4564-b5a0-bfec87c5c562.json new file mode 100644 index 00000000000..df94c52b6b7 --- /dev/null +++ b/change/@react-native-windows-telemetry-3893fb9f-9108-4564-b5a0-bfec87c5c562.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", + "packageName": "@react-native-windows/telemetry", + "email": "copilot@github.com", + "dependentChangeType": "patch" +} diff --git a/packages/@react-native-windows/automation-channel/windows/AutomationChannel.sln b/packages/@react-native-windows/automation-channel/windows/AutomationChannel.sln index e6091ff3ac5..a9b9dcef46f 100644 --- a/packages/@react-native-windows/automation-channel/windows/AutomationChannel.sln +++ b/packages/@react-native-windows/automation-channel/windows/AutomationChannel.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.3.32929.385 +# Visual Studio Version 18 +VisualStudioVersion = 18.0.0.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AutomationChannel", "AutomationChannel\AutomationChannel.vcxproj", "{C0A69310-6119-46DC-A6D6-0BAB7826DC92}" ProjectSection(ProjectDependencies) = postProject diff --git a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj index 1485c7ce52c..a8cbef364dd 100644 --- a/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj +++ b/packages/@react-native-windows/automation-channel/windows/AutomationChannel/AutomationChannel.vcxproj @@ -9,7 +9,7 @@ AutomationChannel AutomationChannel en-US - 17.0 + 18.0 true Windows Store 10.0 diff --git a/packages/@react-native-windows/telemetry/src/test/projects/UsesPackageReference/UsesPackageReference.csproj b/packages/@react-native-windows/telemetry/src/test/projects/UsesPackageReference/UsesPackageReference.csproj index c1269025a95..dd831734f22 100644 --- a/packages/@react-native-windows/telemetry/src/test/projects/UsesPackageReference/UsesPackageReference.csproj +++ b/packages/@react-native-windows/telemetry/src/test/projects/UsesPackageReference/UsesPackageReference.csproj @@ -17,7 +17,7 @@ UAP 10.0.22621.0 10.0.17763.0 - 17.0 + 18.0 512 {A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} true diff --git a/packages/@react-native-windows/telemetry/src/test/projects/UsesPackagesConfig/UsesPackagesConfig.vcxproj b/packages/@react-native-windows/telemetry/src/test/projects/UsesPackagesConfig/UsesPackagesConfig.vcxproj index 87b7e2a0aa6..8a332390924 100644 --- a/packages/@react-native-windows/telemetry/src/test/projects/UsesPackagesConfig/UsesPackagesConfig.vcxproj +++ b/packages/@react-native-windows/telemetry/src/test/projects/UsesPackagesConfig/UsesPackagesConfig.vcxproj @@ -10,7 +10,7 @@ UsesPackagesConfig UsesPackagesConfig en-US - 17.0 + 18.0 true Windows Store 10.0 From 393dc06c4113491db5a41a9200ab464b2ce5e27c Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:34:53 +0000 Subject: [PATCH 09/17] Fix VS2026 installation path from 2026 to 18 in discover-google-test-adapter.yml Co-authored-by: protikbiswas100 <219775028+protikbiswas100@users.noreply.github.com> --- .ado/templates/discover-google-test-adapter.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ado/templates/discover-google-test-adapter.yml b/.ado/templates/discover-google-test-adapter.yml index 5255932b97f..b8f0fb31fd4 100644 --- a/.ado/templates/discover-google-test-adapter.yml +++ b/.ado/templates/discover-google-test-adapter.yml @@ -1,7 +1,7 @@ steps: - powershell: | - $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\2026\Enterprise\Common7\IDE\Extensions\"; + $vsExtensionPath="${env:ProgramFiles}\Microsoft Visual Studio\18\Enterprise\Common7\IDE\Extensions\"; $GoogleTestAdapterPath=(Get-ChildItem $vsExtensionPath -Directory | Where-Object -FilterScript {Test-Path (Join-Path -Path $_.FullName -ChildPath "GoogleTestAdapter.Core.dll")}).FullName # Test the path to the google test adapter From e58bebaf4f2cc3bf0cece9fbe3d233a8b0b8daed Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 10:05:46 +0530 Subject: [PATCH 10/17] adding vs toolset chnages --- .../windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj | 4 ++-- .../playground-composition/Playground-Composition.vcxproj | 4 ++-- .../windows/SampleAppFabric/SampleAppFabric.vcxproj | 4 ++-- .../SampleCustomComponent/SampleCustomComponent.vcxproj | 4 ++-- vnext/Desktop/React.Windows.Desktop.vcxproj | 2 +- vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj | 2 +- vnext/PropertySheets/React.Cpp.props | 2 +- vnext/template/cpp-lib/proj/MyLib.vcxproj | 2 +- vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj | 4 ++-- vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj | 4 ++-- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj index 57bf048a361..43ef6fc5417 100644 --- a/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj +++ b/packages/e2e-test-app-fabric/windows/RNTesterApp-Fabric/RNTesterApp-Fabric.vcxproj @@ -10,7 +10,7 @@ RNTesterApp 10.0 en-US - 17.0 + 18.0 false @@ -47,7 +47,7 @@ Application Unicode - v143 + v145 true diff --git a/packages/playground/windows/playground-composition/Playground-Composition.vcxproj b/packages/playground/windows/playground-composition/Playground-Composition.vcxproj index 975ad13f903..f2053847f75 100644 --- a/packages/playground/windows/playground-composition/Playground-Composition.vcxproj +++ b/packages/playground/windows/playground-composition/Playground-Composition.vcxproj @@ -9,7 +9,7 @@ Playground-composition Win32Proj en-US - 17.0 + 18.0 false @@ -54,7 +54,7 @@ Application Unicode - v143 + v145 true diff --git a/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj b/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj index 415ba11b336..30b29b631ab 100644 --- a/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj +++ b/packages/sample-app-fabric/windows/SampleAppFabric/SampleAppFabric.vcxproj @@ -11,7 +11,7 @@ SampleAppFabric 10.0 en-US - 17.0 + 18.0 false @@ -48,7 +48,7 @@ Application Unicode - v143 + v145 true diff --git a/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj b/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj index 7f679b2b4a6..dbeb247a620 100644 --- a/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj +++ b/packages/sample-custom-component/windows/SampleCustomComponent/SampleCustomComponent.vcxproj @@ -10,7 +10,7 @@ SampleCustomComponent 10.0 en-US - 17.0 + 18.0 false @@ -48,7 +48,7 @@ DynamicLibrary Unicode - v143 + v145 false diff --git a/vnext/Desktop/React.Windows.Desktop.vcxproj b/vnext/Desktop/React.Windows.Desktop.vcxproj index 99c72f88ca9..8131f87dd94 100644 --- a/vnext/Desktop/React.Windows.Desktop.vcxproj +++ b/vnext/Desktop/React.Windows.Desktop.vcxproj @@ -53,7 +53,7 @@ React.Windows.Desktop facebook.react en-US - 17.0 + 18.0 C++/WinRT 2 true diff --git a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj index c7e8956734c..032a1980281 100644 --- a/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +++ b/vnext/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj @@ -10,7 +10,7 @@ Microsoft.ReactNative Microsoft.ReactNative en-US - 17.0 + 18.0 true Windows Store 10.0 diff --git a/vnext/PropertySheets/React.Cpp.props b/vnext/PropertySheets/React.Cpp.props index d22a035bf75..8a55ebb053d 100644 --- a/vnext/PropertySheets/React.Cpp.props +++ b/vnext/PropertySheets/React.Cpp.props @@ -43,7 +43,7 @@ - + false diff --git a/vnext/template/cpp-lib/proj/MyLib.vcxproj b/vnext/template/cpp-lib/proj/MyLib.vcxproj index 71e8f394146..1946a551095 100644 --- a/vnext/template/cpp-lib/proj/MyLib.vcxproj +++ b/vnext/template/cpp-lib/proj/MyLib.vcxproj @@ -10,7 +10,7 @@ {{ name }} {{ namespace }} en-US - 17.0 + 18.0 true Windows Store 10.0 diff --git a/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj b/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj index a605b34aaa1..7f4b55f31d4 100644 --- a/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj +++ b/vnext/templates/cpp-app/windows/MyApp/MyApp.vcxproj @@ -11,7 +11,7 @@ {{ namespace }} 10.0 en-US - 17.0 + 18.0 false @@ -48,7 +48,7 @@ Application Unicode - v143 + v145 true diff --git a/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj b/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj index 09df9a72e4b..efdf94eae2f 100644 --- a/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +++ b/vnext/templates/cpp-lib/windows/MyLib/MyLib.vcxproj @@ -11,7 +11,7 @@ {{ namespace }} 10.0 en-US - 17.0 + 18.0 false @@ -49,7 +49,7 @@ DynamicLibrary Unicode - v143 + v145 false From 59c30c59586d12badaed90426322c0fabda0706d Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 10:16:50 +0530 Subject: [PATCH 11/17] Remove conflicting change file --- ...ation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json diff --git a/change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json b/change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json deleted file mode 100644 index 2feb8395e80..00000000000 --- a/change/@react-native-windows-automation-channel-f1f95da9-8b24-4818-b9b6-58839ca4aa69.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "type": "prerelease", - "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", - "packageName": "@react-native-windows/automation-channel", - "email": "copilot@github.com", - "dependentChangeType": "patch" -} From b31e0c6ef3101d8818ab35a77fb136e055397270 Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 10:17:38 +0530 Subject: [PATCH 12/17] Change files --- ...ation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json diff --git a/change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json b/change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json new file mode 100644 index 00000000000..67c2a103e8a --- /dev/null +++ b/change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json @@ -0,0 +1,7 @@ +{ + "comment": "Revert back to VS2026 CI pipeline configuration", + "type": "prerelease", + "packageName": "@react-native-windows/automation-channel", + "email": "protikbiswas100@microsoft.com", + "dependentChangeType": "patch" +} From cbc1987fe45ca0e5c36cca14b9a9285c93d59269 Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 10:22:35 +0530 Subject: [PATCH 13/17] Remove invalid change file with disallowed patch type for automation-channel --- ...ation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json | 7 ------- 1 file changed, 7 deletions(-) delete mode 100644 change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json diff --git a/change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json b/change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json deleted file mode 100644 index 67c2a103e8a..00000000000 --- a/change/@react-native-windows-automation-channel-3ba4375e-8a82-4f07-8994-4f2993996147.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "comment": "Revert back to VS2026 CI pipeline configuration", - "type": "prerelease", - "packageName": "@react-native-windows/automation-channel", - "email": "protikbiswas100@microsoft.com", - "dependentChangeType": "patch" -} From 39f0bee9030f40bd37fdd7088e94bf66ec8a1022 Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 10:27:04 +0530 Subject: [PATCH 14/17] Add change file for automation-channel VS2026 support --- .../@react-native-windows-automation-channel-vs2026.json | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 change/@react-native-windows-automation-channel-vs2026.json diff --git a/change/@react-native-windows-automation-channel-vs2026.json b/change/@react-native-windows-automation-channel-vs2026.json new file mode 100644 index 00000000000..f7272402e87 --- /dev/null +++ b/change/@react-native-windows-automation-channel-vs2026.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", + "packageName": "@react-native-windows/automation-channel", + "email": "copilot@github.com", + "dependentChangeType": "prerelease" +} From c03aa18fc19223fb641276f83241105abb2bb707 Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 10:30:56 +0530 Subject: [PATCH 15/17] Remove dependentChangeType from automation-channel change file --- ...eact-native-windows-automation-channel-vs2026.json | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/change/@react-native-windows-automation-channel-vs2026.json b/change/@react-native-windows-automation-channel-vs2026.json index f7272402e87..07cef7283e7 100644 --- a/change/@react-native-windows-automation-channel-vs2026.json +++ b/change/@react-native-windows-automation-channel-vs2026.json @@ -1,7 +1,6 @@ { - "type": "prerelease", - "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", - "packageName": "@react-native-windows/automation-channel", - "email": "copilot@github.com", - "dependentChangeType": "prerelease" -} + "type": "prerelease", + "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", + "packageName": "@react-native-windows/automation-channel", + "email": "copilot@github.com" +} \ No newline at end of file From 9c1c80e55e8d126f6a539ec7dc2f23276e77c65d Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 11:04:48 +0530 Subject: [PATCH 16/17] Use prerelease for both type and dependentChangeType in automation-channel change file --- change/@react-native-windows-automation-channel-vs2026.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/change/@react-native-windows-automation-channel-vs2026.json b/change/@react-native-windows-automation-channel-vs2026.json index 07cef7283e7..60a5b56b39b 100644 --- a/change/@react-native-windows-automation-channel-vs2026.json +++ b/change/@react-native-windows-automation-channel-vs2026.json @@ -2,5 +2,6 @@ "type": "prerelease", "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", "packageName": "@react-native-windows/automation-channel", - "email": "copilot@github.com" + "email": "copilot@github.com", + "dependentChangeType": "prerelease" } \ No newline at end of file From 0f75a88eb92fdae0639d4a8f3056540f5e98903b Mon Sep 17 00:00:00 2001 From: Protik Biswas Date: Tue, 2 Dec 2025 11:10:17 +0530 Subject: [PATCH 17/17] Use 'none' type for automation-channel change file to match package configuration --- change/@react-native-windows-automation-channel-vs2026.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/change/@react-native-windows-automation-channel-vs2026.json b/change/@react-native-windows-automation-channel-vs2026.json index 60a5b56b39b..6349e2eeb83 100644 --- a/change/@react-native-windows-automation-channel-vs2026.json +++ b/change/@react-native-windows-automation-channel-vs2026.json @@ -1,7 +1,7 @@ { - "type": "prerelease", + "type": "none", "comment": "Update MinimumVisualStudioVersion to 18.0 for VS2026 support", "packageName": "@react-native-windows/automation-channel", "email": "copilot@github.com", - "dependentChangeType": "prerelease" + "dependentChangeType": "none" } \ No newline at end of file