From 848960a9e9699e1373107959379910f9169bc08a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 27 Nov 2025 04:15:39 +0000 Subject: [PATCH 01/10] Initial plan From 0a24e613d4292e1765062c44fe9e9e88efdd76ba 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 02/10] 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 65d85387e0d..25e4aaeec64 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 47208e2f0f509165c11400dc85176e883a166b0d 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 03/10] 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 e3788e629691c7e1c1ca789e93cc3aae2d9b7865 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 04/10] 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 936bf70fc15317227554a22d26353f505436192e 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 05/10] 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 25e4aaeec64..65d85387e0d 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 ed042d788ff52f5e7643d5135665fa7f06624eca 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 06/10] 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 65d85387e0d..25e4aaeec64 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 3807d86a167dcc19767c8cf22ae0b49719e6d043 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 07/10] 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 c21e9d6751994bd51a6a8007bff997b8636fb247 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 08/10] 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 466d3fd010925129bced09fe32879b2b9fbefb9c 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 09/10] 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 ca2352b5bf9362dfe711c77956ca6cd2f184ccc8 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 10/10] 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