diff --git a/.azure/pipelines/azure-pipelines-mirror-within-azdo.yml b/.azure/pipelines/azure-pipelines-mirror-within-azdo.yml
index cbf529762baaf96ce130af75992b099190ac9ac8..76ae879fb7c3af687fcecf817a614777708b9dfe 100644
--- a/.azure/pipelines/azure-pipelines-mirror-within-azdo.yml
+++ b/.azure/pipelines/azure-pipelines-mirror-within-azdo.yml
@@ -26,7 +26,7 @@ jobs:
       - job: Merge_Azure_DevOps_Branches
         enableSBOM: false
         pool:
-          name: NetCore1ESPool-Internal
+          name: NetCore1ESPool-Svc-Internal
           demands: ImageOverride -equals Build.Server.Amd64.VS2019
         variables:
         - name: WorkingDirectoryName
diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml
index 6aa298db30d2a06d3a84ee5df2c91df04dbb6f61..6db014e61013f70a0432ca077f48557e5a6d0bf7 100644
--- a/.azure/pipelines/ci.yml
+++ b/.azure/pipelines/ci.yml
@@ -771,7 +771,7 @@ stages:
               - Helix_x64
           - Source_Build_Managed
         pool:
-          name: NetCore1ESPool-Internal
+          name: NetCore1ESPool-Svc-Internal
           demands: ImageOverride -equals Build.Server.Amd64.VS2019
         publishUsingPipelines: ${{ variables._PublishUsingPipelines }}
         enablePublishBuildArtifacts: true # publish artifacts/log files
@@ -809,7 +809,7 @@ stages:
               - Helix_x64
           - Source_Build_Managed
         pool:
-          name: NetCore1ESPool-Internal
+          name: NetCore1ESPool-Svc-Internal
           # Visual Studio Enterprise - no BuildTools agents exist internally and job must run on Windows
           demands: ImageOverride -equals Build.Server.Amd64.VS2019
         steps:
diff --git a/.azure/pipelines/components-e2e-tests.yml b/.azure/pipelines/components-e2e-tests.yml
index ef9c8dcf87b361ed2e88e2ac4161a0d15ea84026..7badaca296c6e1e79e32362e192225e7f82a1cda 100644
--- a/.azure/pipelines/components-e2e-tests.yml
+++ b/.azure/pipelines/components-e2e-tests.yml
@@ -40,7 +40,7 @@ jobs:
       displayName: Update submodules
     - script: ./restore.sh
       displayName: Run restore.sh
-    - script: npm install --prefix ./src/Components/test/E2ETest
+    - script: yarn install --frozen-lockfile --cwd ./src/Components/test/E2ETest
       displayName: NPM install
     - script: .dotnet/dotnet build ./src/Components/test/E2ETest -c $(BuildConfiguration) --no-restore
       displayName: Build
diff --git a/.azure/pipelines/helix-matrix.yml b/.azure/pipelines/helix-matrix.yml
index 0684583d13b5ffb8e1040afd4bb75487fbb96067..c59b65b32b448ea6f0a59477e18b28d75dad8416 100644
--- a/.azure/pipelines/helix-matrix.yml
+++ b/.azure/pipelines/helix-matrix.yml
@@ -11,8 +11,8 @@ schedules:
 - cron: "0 9 * * *"
   branches:
     include:
-    - release/5.0
     - release/6.0
+    - release/7.0
   always: false
 
 variables:
diff --git a/.azure/pipelines/jobs/default-build.yml b/.azure/pipelines/jobs/default-build.yml
index 6ff0a2f58fa831ff08811f51432434525851406a..125b09ce792abd32f1e028e59c561ba355b10c3c 100644
--- a/.azure/pipelines/jobs/default-build.yml
+++ b/.azure/pipelines/jobs/default-build.yml
@@ -112,17 +112,17 @@ jobs:
           vmImage: ubuntu-18.04
         ${{ if or(eq(parameters.useHostedUbuntu, false), and(eq(variables['System.TeamProject'], 'internal'), notin(variables['Build.Reason'], 'Manual', 'PullRequest', 'Schedule'))) }}:
           ${{ if eq(variables['System.TeamProject'], 'public') }}:
-            name: NetCore1ESPool-Public
+            name: NetCore1ESPool-Svc-Public
             demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
           ${{ if eq(variables['System.TeamProject'], 'internal') }}:
-            name: NetCore1ESPool-Internal
+            name: NetCore1ESPool-Svc-Internal
             demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
       ${{ if eq(parameters.agentOs, 'Windows') }}:
         ${{ if eq(variables['System.TeamProject'], 'public') }}:
-          name: NetCore1ESPool-Public
+          name: NetCore1ESPool-Svc-Public
           demands: ImageOverride -equals 1es-windows-2022-open
         ${{ if eq(variables['System.TeamProject'], 'internal') }}:
-          name: NetCore1ESPool-Internal
+          name: NetCore1ESPool-Svc-Internal
           # Visual Studio Enterprise - contains some stuff, like SQL Server and IIS Express, that we use for testing
           demands: ImageOverride -equals 1es-windows-2022
     ${{ if ne(parameters.container, '') }}:
diff --git a/.azure/pipelines/quarantined-pr.yml b/.azure/pipelines/quarantined-pr.yml
index 2a49290726e8f04addec281c05a4374b5c433d3f..2d6ce7f2446fac4b88563c08c517af02bc48dd4e 100644
--- a/.azure/pipelines/quarantined-pr.yml
+++ b/.azure/pipelines/quarantined-pr.yml
@@ -3,14 +3,14 @@
 #
 
 # Configure which branches trigger builds
-# We want to run quarantined tests on release/5.0 and main as well as on PRs
+# We want to run quarantined tests on release/6.0 and later as well as on PRs
 trigger:
   batch: true
   branches:
     include:
     - main
-    - release/5.0
     - release/6.0
+    - release/7.0
 
 # Run PR validation on branches that include Helix tests
 pr:
@@ -18,8 +18,8 @@ pr:
   branches:
     include:
     - main
-    - release/5.0
     - release/6.0
+    - release/7.0
   paths:
     exclude:
     - .github/*
diff --git a/.config/CredScanSuppressions.json b/.config/CredScanSuppressions.json
index ea43bfc6d78690a6930138cf46af8d2ee2f76151..e8a273dff47b88254ae45a48635ada39aa19e45c 100644
--- a/.config/CredScanSuppressions.json
+++ b/.config/CredScanSuppressions.json
@@ -122,11 +122,11 @@
       "_justification": "Legitimate UT certificate file with private key"
     },
     {
-      "file": "\\src\\SignalR\\clients\\ts\\FunctionalTests\\testCert.pfx",
+      "file": "\\src\\SignalR\\common\\Shared\\testCert.pfx",
       "_justification": "Legitimate UT certificate file with private key"
     },
     {
-      "file": "\\src\\SignalR\\clients\\ts\\FunctionalTests\\testCertECC.pfx",
+      "file": "\\src\\SignalR\\common\\Shared\\testCertECC.pfx",
       "_justification": "Legitimate UT certificate file with private key"
     },
     {
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index 902c5873c32555a6674693ad1f90b0147f825d5b..0f21612d6844b832c8679f161d57eb1967d7370a 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -62,4 +62,15 @@ updates:
     labels:
       - area-infrastructure
     target-branch: "release/6.0"
-   
+  - package-ecosystem: "gitsubmodule"
+    directory: "/"
+    schedule:
+      interval: "monthly"
+    allow:
+      - dependency-type: "all"
+    commit-message:
+      prefix: "[release/7.0] "
+      include: scope
+    labels:
+      - area-infrastructure
+    target-branch: "release/7.0"
diff --git a/.github/fabricbot.json b/.github/fabricbot.json
index a5d3f7b365b38691a56ecc2f0100608e184f3342..d47ee7332c6d62a0837825ba4fa962029729bfdd 100644
--- a/.github/fabricbot.json
+++ b/.github/fabricbot.json
@@ -2562,7 +2562,7 @@
           {
             "name": "addMilestone",
             "parameters": {
-              "milestoneName": "7.0-rc1"
+              "milestoneName": "7.0-rc2"
             }
           }
         ],
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 44cf62961b0161fbd946afccc9037f7bc6e50ae1..31bb6776797540993b9ae898338928c657931459 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -9,310 +9,315 @@
 -->
 <Dependencies>
   <ProductDependencies>
-    <Dependency Name="dotnet-ef" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="dotnet-ef" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Relational" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Sqlite" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Tools" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="7.0.0-rc.1.22426.7">
+    <Dependency Name="Microsoft.EntityFrameworkCore.Design" Version="7.0.0-rc.2.22426.1">
       <Uri>https://github.com/dotnet/efcore</Uri>
-      <Sha>dc0f3e8ef10eb1464b27f0fd4704f53c01226036</Sha>
+      <Sha>ee3306963ba1bb79355a3c166b6074753cc8717d</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Caching.Abstractions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Caching.Memory" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Caching.Memory" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.Binder" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.CommandLine" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.FileExtensions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.Ini" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Json" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.Json" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.UserSecrets" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration.Xml" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Configuration" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Configuration" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.DependencyInjection" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.FileProviders.Abstractions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.FileProviders.Composite" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.FileProviders.Physical" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.FileSystemGlobbing" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.HostFactoryResolver.Sources" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Hosting" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Hosting" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Http" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Http" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.Configuration" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Console" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.Console" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.Debug" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.Debug" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.EventSource" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.EventLog" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging.TraceSource" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Logging" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Logging" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Options.ConfigurationExtensions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Options.DataAnnotations" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Options" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Options" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.Primitives" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.Primitives" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Internal.Runtime.AspNetCore.Transport" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Internal.Runtime.AspNetCore.Transport" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
     <Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="7.0.0-alpha.1.22409.1">
       <Uri>https://github.com/dotnet/source-build-externals</Uri>
       <Sha>ee790b0477953dd30ea83e0e47af909a04fd0ca3</Sha>
       <SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
     </Dependency>
-    <Dependency Name="System.Configuration.ConfigurationManager" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Configuration.ConfigurationManager" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Diagnostics.DiagnosticSource" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Diagnostics.DiagnosticSource" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Diagnostics.EventLog" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Diagnostics.EventLog" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.DirectoryServices.Protocols" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.DirectoryServices.Protocols" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.IO.Pipelines" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.IO.Pipelines" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Net.Http.Json" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Net.Http.Json" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Net.Http.WinHttpHandler" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Net.Http.WinHttpHandler" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Reflection.Metadata" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Reflection.Metadata" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Resources.Extensions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Resources.Extensions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Cryptography.Pkcs" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Security.Cryptography.Pkcs" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Cryptography.Xml" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Security.Cryptography.Xml" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Security.Permissions" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Security.Permissions" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.ServiceProcess.ServiceController" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.ServiceProcess.ServiceController" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Text.Encodings.Web" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Text.Encodings.Web" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Text.Json" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Text.Json" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Threading.AccessControl" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Threading.AccessControl" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Threading.Channels" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Threading.Channels" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="System.Threading.RateLimiting" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="System.Threading.RateLimiting" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.Extensions.DependencyModel" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.Extensions.DependencyModel" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.App.Ref" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NETCore.App.Ref" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NET.Runtime.MonoAOTCompiler.Task" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NET.Runtime.MonoAOTCompiler.Task" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NET.Runtime.WebAssembly.Sdk" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NET.Runtime.WebAssembly.Sdk" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
     <!--
          Win-x64 is used here because we have picked an arbitrary runtime identifier to flow the version of the latest NETCore.App runtime.
          All Runtime.$rid packages should have the same version.
     -->
-    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NETCore.App.Runtime.AOT.win-x64.Cross.browser-wasm" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NETCore.BrowserDebugHost.Transport" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
+    </Dependency>
+    <Dependency Name="Microsoft.Web.Xdt" Version="7.0.0-preview.22423.2">
+      <Uri>https://github.com/dotnet/xdt</Uri>
+      <Sha>9a1c3e1b7f0c8763d4c96e593961a61a72679a7b</Sha>
+      <SourceBuild RepoName="xdt" ManagedOnly="true" />
     </Dependency>
   </ProductDependencies>
   <ToolsetDependencies>
     <!-- Listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
-    <Dependency Name="Microsoft.NETCore.Platforms" Version="7.0.0-rc.1.22426.10">
+    <Dependency Name="Microsoft.NETCore.Platforms" Version="7.0.0-rc.2.22425.17">
       <Uri>https://github.com/dotnet/runtime</Uri>
-      <Sha>06aceb7015f3bd2ff019ef5920d2354eb2ea2c92</Sha>
+      <Sha>01708feb89968aa919f20d4c84c03ac480803b34</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22418.4">
+    <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="7.0.0-beta.22423.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>0c027eede69ba22bafca9a1955f1e00848655ece</Sha>
+      <Sha>e2fcd61c25c61c6ad0c2a649c8f257077fb1fd88</Sha>
       <SourceBuild RepoName="arcade" ManagedOnly="true" />
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="7.0.0-beta.22418.4">
+    <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="7.0.0-beta.22423.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>0c027eede69ba22bafca9a1955f1e00848655ece</Sha>
+      <Sha>e2fcd61c25c61c6ad0c2a649c8f257077fb1fd88</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="7.0.0-beta.22418.4">
+    <Dependency Name="Microsoft.DotNet.Build.Tasks.Templating" Version="7.0.0-beta.22423.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>0c027eede69ba22bafca9a1955f1e00848655ece</Sha>
+      <Sha>e2fcd61c25c61c6ad0c2a649c8f257077fb1fd88</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22418.4">
+    <Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="7.0.0-beta.22423.1">
       <Uri>https://github.com/dotnet/arcade</Uri>
-      <Sha>0c027eede69ba22bafca9a1955f1e00848655ece</Sha>
+      <Sha>e2fcd61c25c61c6ad0c2a649c8f257077fb1fd88</Sha>
     </Dependency>
   </ToolsetDependencies>
 </Dependencies>
diff --git a/eng/Versions.props b/eng/Versions.props
index 670596524b700ef8a514a061c6755c03eabdb392..23b9a355d19ccc7cd3340a47b0839c7452d5a104 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -9,7 +9,7 @@
     <AspNetCoreMajorVersion>7</AspNetCoreMajorVersion>
     <AspNetCoreMinorVersion>0</AspNetCoreMinorVersion>
     <AspNetCorePatchVersion>0</AspNetCorePatchVersion>
-    <PreReleaseVersionIteration>1</PreReleaseVersionIteration>
+    <PreReleaseVersionIteration>2</PreReleaseVersionIteration>
     <ValidateBaseline>true</ValidateBaseline>
     <!--
         When StabilizePackageVersion is set to 'true', this branch will produce stable outputs for 'Shipping' packages
@@ -50,8 +50,6 @@
     <UsingToolNetFrameworkReferenceAssemblies Condition="'$(OS)' != 'Windows_NT'">true</UsingToolNetFrameworkReferenceAssemblies>
     <!-- Disable XLIFF tasks -->
     <UsingToolXliff>false</UsingToolXliff>
-    <!-- Use custom version of Roslyn Compiler -->
-    <UsingToolMicrosoftNetCompilers>true</UsingToolMicrosoftNetCompilers>
   </PropertyGroup>
   <!--
 
@@ -65,82 +63,84 @@
   -->
   <PropertyGroup Label="Automated">
     <!-- Packages from dotnet/runtime -->
-    <MicrosoftExtensionsDependencyModelVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsDependencyModelVersion>
-    <MicrosoftNETCoreAppRefVersion>7.0.0-rc.1.22426.10</MicrosoftNETCoreAppRefVersion>
-    <MicrosoftNETCoreAppRuntimewinx64Version>7.0.0-rc.1.22426.10</MicrosoftNETCoreAppRuntimewinx64Version>
-    <MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>7.0.0-rc.1.22426.10</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>
-    <MicrosoftNETRuntimeWebAssemblySdkVersion>7.0.0-rc.1.22426.10</MicrosoftNETRuntimeWebAssemblySdkVersion>
-    <MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>7.0.0-rc.1.22426.10</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>
-    <MicrosoftNETCoreBrowserDebugHostTransportVersion>7.0.0-rc.1.22426.10</MicrosoftNETCoreBrowserDebugHostTransportVersion>
-    <MicrosoftExtensionsCachingAbstractionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsCachingAbstractionsVersion>
-    <MicrosoftExtensionsCachingMemoryVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsCachingMemoryVersion>
-    <MicrosoftExtensionsConfigurationAbstractionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationAbstractionsVersion>
-    <MicrosoftExtensionsConfigurationBinderVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationBinderVersion>
-    <MicrosoftExtensionsConfigurationCommandLineVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationCommandLineVersion>
-    <MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>
-    <MicrosoftExtensionsConfigurationFileExtensionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationFileExtensionsVersion>
-    <MicrosoftExtensionsConfigurationIniVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationIniVersion>
-    <MicrosoftExtensionsConfigurationJsonVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationJsonVersion>
-    <MicrosoftExtensionsConfigurationVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationVersion>
-    <MicrosoftExtensionsConfigurationUserSecretsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationUserSecretsVersion>
-    <MicrosoftExtensionsConfigurationXmlVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsConfigurationXmlVersion>
-    <MicrosoftExtensionsDependencyInjectionAbstractionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsDependencyInjectionAbstractionsVersion>
-    <MicrosoftExtensionsDependencyInjectionVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsDependencyInjectionVersion>
-    <MicrosoftExtensionsFileProvidersAbstractionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsFileProvidersAbstractionsVersion>
-    <MicrosoftExtensionsFileProvidersCompositeVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsFileProvidersCompositeVersion>
-    <MicrosoftExtensionsFileProvidersPhysicalVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsFileProvidersPhysicalVersion>
-    <MicrosoftExtensionsFileSystemGlobbingVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsFileSystemGlobbingVersion>
-    <MicrosoftExtensionsHostFactoryResolverSourcesVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsHostFactoryResolverSourcesVersion>
-    <MicrosoftExtensionsHostingAbstractionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsHostingAbstractionsVersion>
-    <MicrosoftExtensionsHostingVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsHostingVersion>
-    <MicrosoftExtensionsHttpVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsHttpVersion>
-    <MicrosoftExtensionsLoggingAbstractionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingAbstractionsVersion>
-    <MicrosoftExtensionsLoggingConfigurationVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingConfigurationVersion>
-    <MicrosoftExtensionsLoggingConsoleVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingConsoleVersion>
-    <MicrosoftExtensionsLoggingDebugVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingDebugVersion>
-    <MicrosoftExtensionsLoggingEventSourceVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingEventSourceVersion>
-    <MicrosoftExtensionsLoggingEventLogVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingEventLogVersion>
-    <MicrosoftExtensionsLoggingVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingVersion>
-    <MicrosoftExtensionsLoggingTraceSourceVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsLoggingTraceSourceVersion>
-    <MicrosoftExtensionsOptionsConfigurationExtensionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsOptionsConfigurationExtensionsVersion>
-    <MicrosoftExtensionsOptionsDataAnnotationsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsOptionsDataAnnotationsVersion>
-    <MicrosoftExtensionsOptionsVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsOptionsVersion>
-    <MicrosoftExtensionsPrimitivesVersion>7.0.0-rc.1.22426.10</MicrosoftExtensionsPrimitivesVersion>
-    <MicrosoftInternalRuntimeAspNetCoreTransportVersion>7.0.0-rc.1.22426.10</MicrosoftInternalRuntimeAspNetCoreTransportVersion>
-    <SystemConfigurationConfigurationManagerVersion>7.0.0-rc.1.22426.10</SystemConfigurationConfigurationManagerVersion>
-    <SystemDiagnosticsDiagnosticSourceVersion>7.0.0-rc.1.22426.10</SystemDiagnosticsDiagnosticSourceVersion>
-    <SystemDiagnosticsEventLogVersion>7.0.0-rc.1.22426.10</SystemDiagnosticsEventLogVersion>
-    <SystemDirectoryServicesProtocolsVersion>7.0.0-rc.1.22426.10</SystemDirectoryServicesProtocolsVersion>
-    <SystemIOPipelinesVersion>7.0.0-rc.1.22426.10</SystemIOPipelinesVersion>
-    <SystemNetHttpJsonVersion>7.0.0-rc.1.22426.10</SystemNetHttpJsonVersion>
-    <SystemNetHttpWinHttpHandlerVersion>7.0.0-rc.1.22426.10</SystemNetHttpWinHttpHandlerVersion>
-    <SystemReflectionMetadataVersion>7.0.0-rc.1.22426.10</SystemReflectionMetadataVersion>
-    <SystemResourcesExtensionsVersion>7.0.0-rc.1.22426.10</SystemResourcesExtensionsVersion>
-    <SystemSecurityCryptographyPkcsVersion>7.0.0-rc.1.22426.10</SystemSecurityCryptographyPkcsVersion>
-    <SystemSecurityCryptographyXmlVersion>7.0.0-rc.1.22426.10</SystemSecurityCryptographyXmlVersion>
-    <SystemSecurityPermissionsVersion>7.0.0-rc.1.22426.10</SystemSecurityPermissionsVersion>
-    <SystemServiceProcessServiceControllerVersion>7.0.0-rc.1.22426.10</SystemServiceProcessServiceControllerVersion>
-    <SystemTextEncodingsWebVersion>7.0.0-rc.1.22426.10</SystemTextEncodingsWebVersion>
-    <SystemTextJsonVersion>7.0.0-rc.1.22426.10</SystemTextJsonVersion>
-    <SystemThreadingAccessControlVersion>7.0.0-rc.1.22426.10</SystemThreadingAccessControlVersion>
-    <SystemThreadingChannelsVersion>7.0.0-rc.1.22426.10</SystemThreadingChannelsVersion>
-    <SystemThreadingRateLimitingVersion>7.0.0-rc.1.22426.10</SystemThreadingRateLimitingVersion>
+    <MicrosoftExtensionsDependencyModelVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsDependencyModelVersion>
+    <MicrosoftNETCoreAppRefVersion>7.0.0-rc.2.22425.17</MicrosoftNETCoreAppRefVersion>
+    <MicrosoftNETCoreAppRuntimewinx64Version>7.0.0-rc.2.22425.17</MicrosoftNETCoreAppRuntimewinx64Version>
+    <MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>7.0.0-rc.2.22425.17</MicrosoftNETRuntimeMonoAOTCompilerTaskVersion>
+    <MicrosoftNETRuntimeWebAssemblySdkVersion>7.0.0-rc.2.22425.17</MicrosoftNETRuntimeWebAssemblySdkVersion>
+    <MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>7.0.0-rc.2.22425.17</MicrosoftNETCoreAppRuntimeAOTwinx64CrossbrowserwasmVersion>
+    <MicrosoftNETCoreBrowserDebugHostTransportVersion>7.0.0-rc.2.22425.17</MicrosoftNETCoreBrowserDebugHostTransportVersion>
+    <MicrosoftExtensionsCachingAbstractionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsCachingAbstractionsVersion>
+    <MicrosoftExtensionsCachingMemoryVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsCachingMemoryVersion>
+    <MicrosoftExtensionsConfigurationAbstractionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationAbstractionsVersion>
+    <MicrosoftExtensionsConfigurationBinderVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationBinderVersion>
+    <MicrosoftExtensionsConfigurationCommandLineVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationCommandLineVersion>
+    <MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationEnvironmentVariablesVersion>
+    <MicrosoftExtensionsConfigurationFileExtensionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationFileExtensionsVersion>
+    <MicrosoftExtensionsConfigurationIniVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationIniVersion>
+    <MicrosoftExtensionsConfigurationJsonVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationJsonVersion>
+    <MicrosoftExtensionsConfigurationVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationVersion>
+    <MicrosoftExtensionsConfigurationUserSecretsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationUserSecretsVersion>
+    <MicrosoftExtensionsConfigurationXmlVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsConfigurationXmlVersion>
+    <MicrosoftExtensionsDependencyInjectionAbstractionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsDependencyInjectionAbstractionsVersion>
+    <MicrosoftExtensionsDependencyInjectionVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsDependencyInjectionVersion>
+    <MicrosoftExtensionsFileProvidersAbstractionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsFileProvidersAbstractionsVersion>
+    <MicrosoftExtensionsFileProvidersCompositeVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsFileProvidersCompositeVersion>
+    <MicrosoftExtensionsFileProvidersPhysicalVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsFileProvidersPhysicalVersion>
+    <MicrosoftExtensionsFileSystemGlobbingVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsFileSystemGlobbingVersion>
+    <MicrosoftExtensionsHostFactoryResolverSourcesVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsHostFactoryResolverSourcesVersion>
+    <MicrosoftExtensionsHostingAbstractionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsHostingAbstractionsVersion>
+    <MicrosoftExtensionsHostingVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsHostingVersion>
+    <MicrosoftExtensionsHttpVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsHttpVersion>
+    <MicrosoftExtensionsLoggingAbstractionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingAbstractionsVersion>
+    <MicrosoftExtensionsLoggingConfigurationVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingConfigurationVersion>
+    <MicrosoftExtensionsLoggingConsoleVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingConsoleVersion>
+    <MicrosoftExtensionsLoggingDebugVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingDebugVersion>
+    <MicrosoftExtensionsLoggingEventSourceVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingEventSourceVersion>
+    <MicrosoftExtensionsLoggingEventLogVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingEventLogVersion>
+    <MicrosoftExtensionsLoggingVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingVersion>
+    <MicrosoftExtensionsLoggingTraceSourceVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsLoggingTraceSourceVersion>
+    <MicrosoftExtensionsOptionsConfigurationExtensionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsOptionsConfigurationExtensionsVersion>
+    <MicrosoftExtensionsOptionsDataAnnotationsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsOptionsDataAnnotationsVersion>
+    <MicrosoftExtensionsOptionsVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsOptionsVersion>
+    <MicrosoftExtensionsPrimitivesVersion>7.0.0-rc.2.22425.17</MicrosoftExtensionsPrimitivesVersion>
+    <MicrosoftInternalRuntimeAspNetCoreTransportVersion>7.0.0-rc.2.22425.17</MicrosoftInternalRuntimeAspNetCoreTransportVersion>
+    <SystemConfigurationConfigurationManagerVersion>7.0.0-rc.2.22425.17</SystemConfigurationConfigurationManagerVersion>
+    <SystemDiagnosticsDiagnosticSourceVersion>7.0.0-rc.2.22425.17</SystemDiagnosticsDiagnosticSourceVersion>
+    <SystemDiagnosticsEventLogVersion>7.0.0-rc.2.22425.17</SystemDiagnosticsEventLogVersion>
+    <SystemDirectoryServicesProtocolsVersion>7.0.0-rc.2.22425.17</SystemDirectoryServicesProtocolsVersion>
+    <SystemIOPipelinesVersion>7.0.0-rc.2.22425.17</SystemIOPipelinesVersion>
+    <SystemNetHttpJsonVersion>7.0.0-rc.2.22425.17</SystemNetHttpJsonVersion>
+    <SystemNetHttpWinHttpHandlerVersion>7.0.0-rc.2.22425.17</SystemNetHttpWinHttpHandlerVersion>
+    <SystemReflectionMetadataVersion>7.0.0-rc.2.22425.17</SystemReflectionMetadataVersion>
+    <SystemResourcesExtensionsVersion>7.0.0-rc.2.22425.17</SystemResourcesExtensionsVersion>
+    <SystemSecurityCryptographyPkcsVersion>7.0.0-rc.2.22425.17</SystemSecurityCryptographyPkcsVersion>
+    <SystemSecurityCryptographyXmlVersion>7.0.0-rc.2.22425.17</SystemSecurityCryptographyXmlVersion>
+    <SystemSecurityPermissionsVersion>7.0.0-rc.2.22425.17</SystemSecurityPermissionsVersion>
+    <SystemServiceProcessServiceControllerVersion>7.0.0-rc.2.22425.17</SystemServiceProcessServiceControllerVersion>
+    <SystemTextEncodingsWebVersion>7.0.0-rc.2.22425.17</SystemTextEncodingsWebVersion>
+    <SystemTextJsonVersion>7.0.0-rc.2.22425.17</SystemTextJsonVersion>
+    <SystemThreadingAccessControlVersion>7.0.0-rc.2.22425.17</SystemThreadingAccessControlVersion>
+    <SystemThreadingChannelsVersion>7.0.0-rc.2.22425.17</SystemThreadingChannelsVersion>
+    <SystemThreadingRateLimitingVersion>7.0.0-rc.2.22425.17</SystemThreadingRateLimitingVersion>
     <!-- Only listed explicitly to workaround https://github.com/dotnet/cli/issues/10528 -->
-    <MicrosoftNETCorePlatformsVersion>7.0.0-rc.1.22426.10</MicrosoftNETCorePlatformsVersion>
+    <MicrosoftNETCorePlatformsVersion>7.0.0-rc.2.22425.17</MicrosoftNETCorePlatformsVersion>
     <!-- Packages from dotnet/efcore -->
-    <dotnetefVersion>7.0.0-rc.1.22426.7</dotnetefVersion>
-    <MicrosoftEntityFrameworkCoreInMemoryVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreInMemoryVersion>
-    <MicrosoftEntityFrameworkCoreRelationalVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreRelationalVersion>
-    <MicrosoftEntityFrameworkCoreSqliteVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreSqliteVersion>
-    <MicrosoftEntityFrameworkCoreSqlServerVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreSqlServerVersion>
-    <MicrosoftEntityFrameworkCoreToolsVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreToolsVersion>
-    <MicrosoftEntityFrameworkCoreVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreVersion>
-    <MicrosoftEntityFrameworkCoreDesignVersion>7.0.0-rc.1.22426.7</MicrosoftEntityFrameworkCoreDesignVersion>
+    <dotnetefVersion>7.0.0-rc.2.22426.1</dotnetefVersion>
+    <MicrosoftEntityFrameworkCoreInMemoryVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreInMemoryVersion>
+    <MicrosoftEntityFrameworkCoreRelationalVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreRelationalVersion>
+    <MicrosoftEntityFrameworkCoreSqliteVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreSqliteVersion>
+    <MicrosoftEntityFrameworkCoreSqlServerVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreSqlServerVersion>
+    <MicrosoftEntityFrameworkCoreToolsVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreToolsVersion>
+    <MicrosoftEntityFrameworkCoreVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreVersion>
+    <MicrosoftEntityFrameworkCoreDesignVersion>7.0.0-rc.2.22426.1</MicrosoftEntityFrameworkCoreDesignVersion>
     <!-- Packages from dotnet/arcade -->
-    <MicrosoftDotNetBuildTasksInstallersVersion>7.0.0-beta.22418.4</MicrosoftDotNetBuildTasksInstallersVersion>
-    <MicrosoftDotNetBuildTasksTemplatingVersion>7.0.0-beta.22418.4</MicrosoftDotNetBuildTasksTemplatingVersion>
+    <MicrosoftDotNetBuildTasksInstallersVersion>7.0.0-beta.22423.1</MicrosoftDotNetBuildTasksInstallersVersion>
+    <MicrosoftDotNetBuildTasksTemplatingVersion>7.0.0-beta.22423.1</MicrosoftDotNetBuildTasksTemplatingVersion>
     <!-- Packages from dotnet/source-build-externals -->
     <MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>7.0.0-alpha.1.22409.1</MicrosoftSourceBuildIntermediatesourcebuildexternalsVersion>
+    <!-- Packages from dotnet/xdt -->
+    <MicrosoftWebXdtVersion>7.0.0-preview.22423.2</MicrosoftWebXdtVersion>
   </PropertyGroup>
   <!--
 
@@ -198,10 +198,6 @@
       framework in current .NET SDKs.
     -->
     <MicrosoftNETTestSdkVersion>17.1.0-preview-20211109-03</MicrosoftNETTestSdkVersion>
-    <!--
-      Use a compiler new enough to use required keyword
-    -->
-    <MicrosoftNetCompilersToolsetVersion>4.4.0-1.22358.14</MicrosoftNetCompilersToolsetVersion>
     <!--
       Versions of Microsoft.CodeAnalysis packages referenced by analyzers shipped in the SDK.
       This need to be pinned since they're used in 3.1 apps and need to be loadable in VS 2019.
@@ -223,7 +219,6 @@
     <MicrosoftOwinSecurityCookiesVersion>3.0.1</MicrosoftOwinSecurityCookiesVersion>
     <MicrosoftOwinTestingVersion>3.0.1</MicrosoftOwinTestingVersion>
     <MicrosoftWebAdministrationVersion>11.1.0</MicrosoftWebAdministrationVersion>
-    <MicrosoftWebXdtVersion>1.4.0</MicrosoftWebXdtVersion>
     <SystemIdentityModelTokensJwtVersion>6.21.0</SystemIdentityModelTokensJwtVersion>
     <NuGetPackagingVersion>6.2.0</NuGetPackagingVersion>
     <NuGetVersioningVersion>6.2.0</NuGetVersioningVersion>
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
index 846e7950ce945bfd02a30bed5a31cda8d70ec72a..bab18543d6c4aa35dcb9a9b667c9f93d106e94a7 100644
--- a/eng/common/generate-locproject.ps1
+++ b/eng/common/generate-locproject.ps1
@@ -62,7 +62,7 @@ $locJson = @{
                     $outputPath = "$(($_.DirectoryName | Resolve-Path -Relative) + "\")"
                     $continue = $true
                     foreach ($exclusion in $exclusions.Exclusions) {
-                        if ($outputPath.Contains($exclusion))
+                        if ($_.FullName.Contains($exclusion))
                         {
                             $continue = $false
                         }
@@ -98,7 +98,7 @@ $locJson = @{
                     $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
                     $continue = $true
                     foreach ($exclusion in $exclusions.Exclusions) {
-                        if ($outputPath.Contains($exclusion))
+                        if ($_.FullName.Contains($exclusion))
                         {
                             $continue = $false
                         }
diff --git a/eng/targets/Npm.Common.targets b/eng/targets/Npm.Common.targets
index b236c04baceb5cecdf52c83401c9079f4203efa2..97f7c9cf4dca6af3fb12ceca6e76ac65f91c4f0d 100644
--- a/eng/targets/Npm.Common.targets
+++ b/eng/targets/Npm.Common.targets
@@ -42,7 +42,10 @@
   <Target Name="Restore">
     <Telemetry EventName="NETCORE_ENGINEERING_TELEMETRY" EventData="Category=Restore" />
     <Message Importance="High" Text="Running yarn install on $(MSBuildProjectFullPath)" />
-    <Yarn Command="install --mutex network $(InstallArgs)" StandardOutputImportance="High" StandardErrorImportance="High" IgnoreStandardErrorWarningFormat="$(IgnoreYarnWarnings)" />
+    <Yarn Command="install --mutex network $(InstallArgs) --frozen-lockfile"
+        StandardOutputImportance="High"
+        StandardErrorImportance="High"
+        IgnoreStandardErrorWarningFormat="$(IgnoreYarnWarnings)" />
   </Target>
 
   <Target Name="PrepareForBuild">
diff --git a/global.json b/global.json
index 0fdd54aa35afec8a0baaf4f12af1923e955ab31c..bb86c8ffedb2de5f6ebf502a5e8d471fcea05daf 100644
--- a/global.json
+++ b/global.json
@@ -27,7 +27,7 @@
   },
   "msbuild-sdks": {
     "Yarn.MSBuild": "1.22.10",
-    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22418.4",
-    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22418.4"
+    "Microsoft.DotNet.Arcade.Sdk": "7.0.0-beta.22423.1",
+    "Microsoft.DotNet.Helix.Sdk": "7.0.0-beta.22423.1"
   }
 }
diff --git a/src/Framework/test/SharedFxTests.cs b/src/Framework/test/SharedFxTests.cs
index d3f1e4b6e54805dfde096a028462eaad97f4742b..1892275bddd25654c14a646d47016484e5a53072 100644
--- a/src/Framework/test/SharedFxTests.cs
+++ b/src/Framework/test/SharedFxTests.cs
@@ -159,32 +159,38 @@ public class SharedFxTests
     [Fact]
     public void SharedFrameworkAssembliesHaveExpectedAssemblyVersions()
     {
-        // Only test managed assemblies from dotnet/aspnetcore.
+        // Assemblies from this repo and dotnet/runtime don't always have identical assembly versions.
         var repoAssemblies = TestData.GetSharedFrameworkBinariesFromRepo()
             .Split(';', StringSplitOptions.RemoveEmptyEntries)
             .ToHashSet();
 
         var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0];
         var version = Version.Parse(versionStringWithoutPrereleaseTag);
+        var aspnetcoreVersionString = TestData.GetSharedFxVersion().Split('-', 2)[0];
+        var aspnetcoreVersion = Version.Parse(aspnetcoreVersionString);
+
         var dlls = Directory.GetFiles(_sharedFxRoot, "*.dll", SearchOption.AllDirectories);
         Assert.NotEmpty(dlls);
 
         Assert.All(dlls, path =>
         {
-            // Unlike dotnet/aspnetcore, dotnet/runtime varies the assembly version while in servicing.
-            if (!repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path)))
+            var name = Path.GetFileNameWithoutExtension(path);
+            if (string.Equals(name, "aspnetcorev2_inprocess", StringComparison.Ordinal))
             {
+                // Skip our native assembly.
                 return;
             }
 
+            var expectedVersion = repoAssemblies.Contains(name) ? aspnetcoreVersion : version;
+
             using var fileStream = File.OpenRead(path);
             using var peReader = new PEReader(fileStream, PEStreamOptions.Default);
             var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default);
             var assemblyDefinition = reader.GetAssemblyDefinition();
 
             // Assembly versions should all match Major.Minor.0.0
-            Assert.Equal(version.Major, assemblyDefinition.Version.Major);
-            Assert.Equal(version.Minor, assemblyDefinition.Version.Minor);
+            Assert.Equal(expectedVersion.Major, assemblyDefinition.Version.Major);
+            Assert.Equal(expectedVersion.Minor, assemblyDefinition.Version.Minor);
             Assert.Equal(0, assemblyDefinition.Version.Build);
             Assert.Equal(0, assemblyDefinition.Version.Revision);
         });
diff --git a/src/Framework/test/TargetingPackTests.cs b/src/Framework/test/TargetingPackTests.cs
index 3fccd1febce3b18a851e50545812064d1329582e..76be10479af33dc46f14d4730036093c03c57810 100644
--- a/src/Framework/test/TargetingPackTests.cs
+++ b/src/Framework/test/TargetingPackTests.cs
@@ -38,7 +38,7 @@ public class TargetingPackTests
         var actualAssemblies = Directory.GetFiles(Path.Combine(_targetingPackRoot, "ref", _targetingPackTfm), "*.dll")
             .Select(Path.GetFileNameWithoutExtension)
             .ToHashSet();
-        var listedTargetingPackAssemblies = TestData.ListedTargetingPackAssemblies.Keys.ToHashSet();
+        var listedTargetingPackAssemblies = TestData.ListedTargetingPackAssemblies.ToHashSet();
 
         _output.WriteLine("==== actual assemblies ====");
         _output.WriteLine(string.Join('\n', actualAssemblies.OrderBy(i => i)));
@@ -60,11 +60,25 @@ public class TargetingPackTests
     [Fact]
     public void RefAssembliesHaveExpectedAssemblyVersions()
     {
+        // Assemblies from this repo and dotnet/runtime don't always have identical assembly versions.
+        var repoAssemblies = TestData.GetAspNetCoreTargetingPackDependencies()
+            .Split(';', StringSplitOptions.RemoveEmptyEntries)
+            .ToHashSet();
+
+        var versionStringWithoutPrereleaseTag = TestData.GetMicrosoftNETCoreAppPackageVersion().Split('-', 2)[0];
+        var version = Version.Parse(versionStringWithoutPrereleaseTag);
+        var aspnetcoreVersionString = TestData.GetSharedFxVersion().Split('-', 2)[0];
+        var aspnetcoreVersion = Version.Parse(aspnetcoreVersionString);
+
         IEnumerable<string> dlls = Directory.GetFiles(Path.Combine(_targetingPackRoot, "ref", _targetingPackTfm), "*.dll", SearchOption.AllDirectories);
         Assert.NotEmpty(dlls);
 
         Assert.All(dlls, path =>
         {
+            var expectedVersion = repoAssemblies.Contains(Path.GetFileNameWithoutExtension(path)) ?
+                aspnetcoreVersion :
+                version;
+
             var fileName = Path.GetFileNameWithoutExtension(path);
             var assemblyName = AssemblyName.GetAssemblyName(path);
             using var fileStream = File.OpenRead(path);
@@ -72,8 +86,11 @@ public class TargetingPackTests
             var reader = peReader.GetMetadataReader(MetadataReaderOptions.Default);
             var assemblyDefinition = reader.GetAssemblyDefinition();
 
-            TestData.ListedTargetingPackAssemblies.TryGetValue(fileName, out var expectedVersion);
-            Assert.Equal(expectedVersion, assemblyDefinition.Version.ToString());
+            // Assembly versions should all match Major.Minor.0.0
+            Assert.Equal(expectedVersion.Major, assemblyDefinition.Version.Major);
+            Assert.Equal(expectedVersion.Minor, assemblyDefinition.Version.Minor);
+            Assert.Equal(0, assemblyDefinition.Version.Build);
+            Assert.Equal(0, assemblyDefinition.Version.Revision);
         });
     }
 
diff --git a/src/Framework/test/TestData.cs b/src/Framework/test/TestData.cs
index 12423f63cebaa7b866619dddd65b7196a13acb3e..2763c05a50489235151ecc6e96701cde7113a650 100644
--- a/src/Framework/test/TestData.cs
+++ b/src/Framework/test/TestData.cs
@@ -9,7 +9,7 @@ public static class TestData
 {
     public static List<string> ListedSharedFxAssemblies;
 
-    public static SortedDictionary<string, string> ListedTargetingPackAssemblies;
+    public static List<string> ListedTargetingPackAssemblies;
 
     static TestData()
     {
@@ -153,141 +153,141 @@ public static class TestData
                 "System.Threading.RateLimiting",
             };
 
-        ListedTargetingPackAssemblies = new SortedDictionary<string, string>
+        ListedTargetingPackAssemblies = new List<string>
             {
-                { "Microsoft.AspNetCore", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Antiforgery", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authentication", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authentication.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authentication.Cookies", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authentication.Core", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authentication.OAuth", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authorization", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Authorization.Policy", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Components", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Components.Authorization", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Components.Forms", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Components.Server", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Components.Web", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Connections.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.CookiePolicy", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Cors", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Cryptography.Internal", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Cryptography.KeyDerivation", "7.0.0.0" },
-                { "Microsoft.AspNetCore.DataProtection", "7.0.0.0" },
-                { "Microsoft.AspNetCore.DataProtection.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.DataProtection.Extensions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Diagnostics", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Diagnostics.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Diagnostics.HealthChecks", "7.0.0.0" },
-                { "Microsoft.AspNetCore.HostFiltering", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Hosting", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Hosting.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Hosting.Server.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Html.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http.Connections", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http.Connections.Common", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http.Extensions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http.Features", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Http.Results", "7.0.0.0" },
-                { "Microsoft.AspNetCore.HttpLogging", "7.0.0.0" },
-                { "Microsoft.AspNetCore.HttpOverrides", "7.0.0.0" },
-                { "Microsoft.AspNetCore.HttpsPolicy", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Identity", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Localization", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Localization.Routing", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Metadata", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.ApiExplorer", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Core", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Cors", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.DataAnnotations", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Formatters.Json", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Formatters.Xml", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Localization", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.Razor", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.RazorPages", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.TagHelpers", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Mvc.ViewFeatures", "7.0.0.0" },
-                { "Microsoft.AspNetCore.OutputCaching", "7.0.0.0" },
-                { "Microsoft.AspNetCore.RateLimiting", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Razor", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Razor.Runtime", "7.0.0.0" },
-                { "Microsoft.AspNetCore.RequestDecompression", "7.0.0.0" },
-                { "Microsoft.AspNetCore.ResponseCaching", "7.0.0.0" },
-                { "Microsoft.AspNetCore.ResponseCaching.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.ResponseCompression", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Rewrite", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Routing", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Routing.Abstractions", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.HttpSys", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.IIS", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.IISIntegration", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.Kestrel", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.Kestrel.Core", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets", "7.0.0.0" },
-                { "Microsoft.AspNetCore.Session", "7.0.0.0" },
-                { "Microsoft.AspNetCore.SignalR", "7.0.0.0" },
-                { "Microsoft.AspNetCore.SignalR.Common", "7.0.0.0" },
-                { "Microsoft.AspNetCore.SignalR.Core", "7.0.0.0" },
-                { "Microsoft.AspNetCore.SignalR.Protocols.Json", "7.0.0.0" },
-                { "Microsoft.AspNetCore.StaticFiles", "7.0.0.0" },
-                { "Microsoft.AspNetCore.WebSockets", "7.0.0.0" },
-                { "Microsoft.AspNetCore.WebUtilities", "7.0.0.0" },
-                { "Microsoft.Extensions.Caching.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.Caching.Memory", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.Binder", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.CommandLine", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.EnvironmentVariables", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.FileExtensions", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.Ini", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.Json", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.KeyPerFile", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.UserSecrets", "7.0.0.0" },
-                { "Microsoft.Extensions.Configuration.Xml", "7.0.0.0" },
-                { "Microsoft.Extensions.DependencyInjection", "7.0.0.0" },
-                { "Microsoft.Extensions.DependencyInjection.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.Diagnostics.HealthChecks", "7.0.0.0" },
-                { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.FileProviders.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.FileProviders.Composite", "7.0.0.0" },
-                { "Microsoft.Extensions.FileProviders.Embedded", "7.0.0.0" },
-                { "Microsoft.Extensions.FileProviders.Physical", "7.0.0.0" },
-                { "Microsoft.Extensions.FileSystemGlobbing", "7.0.0.0" },
-                { "Microsoft.Extensions.Features", "7.0.0.0" },
-                { "Microsoft.Extensions.Hosting", "7.0.0.0" },
-                { "Microsoft.Extensions.Hosting.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.Http", "7.0.0.0" },
-                { "Microsoft.Extensions.Identity.Core", "7.0.0.0" },
-                { "Microsoft.Extensions.Identity.Stores", "7.0.0.0" },
-                { "Microsoft.Extensions.Localization", "7.0.0.0" },
-                { "Microsoft.Extensions.Localization.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.Abstractions", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.Configuration", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.Console", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.Debug", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.EventLog", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.EventSource", "7.0.0.0" },
-                { "Microsoft.Extensions.Logging.TraceSource", "7.0.0.0" },
-                { "Microsoft.Extensions.ObjectPool", "7.0.0.0" },
-                { "Microsoft.Extensions.Options", "7.0.0.0" },
-                { "Microsoft.Extensions.Options.ConfigurationExtensions", "7.0.0.0" },
-                { "Microsoft.Extensions.Options.DataAnnotations", "7.0.0.0" },
-                { "Microsoft.Extensions.Primitives", "7.0.0.0" },
-                { "Microsoft.Extensions.WebEncoders", "7.0.0.0" },
-                { "Microsoft.JSInterop", "7.0.0.0" },
-                { "Microsoft.Net.Http.Headers", "7.0.0.0" },
-                { "System.Diagnostics.EventLog", "7.0.0.0" },
-                { "System.IO.Pipelines", "7.0.0.0" },
-                { "System.Security.Cryptography.Xml", "7.0.0.0" },
-                { "System.Threading.RateLimiting", "7.0.0.0" },
+                { "Microsoft.AspNetCore.Antiforgery" },
+                { "Microsoft.AspNetCore.Authentication.Abstractions" },
+                { "Microsoft.AspNetCore.Authentication.Cookies" },
+                { "Microsoft.AspNetCore.Authentication.Core" },
+                { "Microsoft.AspNetCore.Authentication.OAuth" },
+                { "Microsoft.AspNetCore.Authentication" },
+                { "Microsoft.AspNetCore.Authorization.Policy" },
+                { "Microsoft.AspNetCore.Authorization" },
+                { "Microsoft.AspNetCore.Components.Authorization" },
+                { "Microsoft.AspNetCore.Components.Forms" },
+                { "Microsoft.AspNetCore.Components.Server" },
+                { "Microsoft.AspNetCore.Components.Web" },
+                { "Microsoft.AspNetCore.Components" },
+                { "Microsoft.AspNetCore.Connections.Abstractions" },
+                { "Microsoft.AspNetCore.CookiePolicy" },
+                { "Microsoft.AspNetCore.Cors" },
+                { "Microsoft.AspNetCore.Cryptography.Internal" },
+                { "Microsoft.AspNetCore.Cryptography.KeyDerivation" },
+                { "Microsoft.AspNetCore.DataProtection.Abstractions" },
+                { "Microsoft.AspNetCore.DataProtection.Extensions" },
+                { "Microsoft.AspNetCore.DataProtection" },
+                { "Microsoft.AspNetCore.Diagnostics.Abstractions" },
+                { "Microsoft.AspNetCore.Diagnostics.HealthChecks" },
+                { "Microsoft.AspNetCore.Diagnostics" },
+                { "Microsoft.AspNetCore.HostFiltering" },
+                { "Microsoft.AspNetCore.Hosting.Abstractions" },
+                { "Microsoft.AspNetCore.Hosting.Server.Abstractions" },
+                { "Microsoft.AspNetCore.Hosting" },
+                { "Microsoft.AspNetCore.Html.Abstractions" },
+                { "Microsoft.AspNetCore.Http.Abstractions" },
+                { "Microsoft.AspNetCore.Http.Connections.Common" },
+                { "Microsoft.AspNetCore.Http.Connections" },
+                { "Microsoft.AspNetCore.Http.Extensions" },
+                { "Microsoft.AspNetCore.Http.Features" },
+                { "Microsoft.AspNetCore.Http.Results" },
+                { "Microsoft.AspNetCore.Http" },
+                { "Microsoft.AspNetCore.HttpLogging" },
+                { "Microsoft.AspNetCore.HttpOverrides" },
+                { "Microsoft.AspNetCore.HttpsPolicy" },
+                { "Microsoft.AspNetCore.Identity" },
+                { "Microsoft.AspNetCore.Localization.Routing" },
+                { "Microsoft.AspNetCore.Localization" },
+                { "Microsoft.AspNetCore.Metadata" },
+                { "Microsoft.AspNetCore.Mvc.Abstractions" },
+                { "Microsoft.AspNetCore.Mvc.ApiExplorer" },
+                { "Microsoft.AspNetCore.Mvc.Core" },
+                { "Microsoft.AspNetCore.Mvc.Cors" },
+                { "Microsoft.AspNetCore.Mvc.DataAnnotations" },
+                { "Microsoft.AspNetCore.Mvc.Formatters.Json" },
+                { "Microsoft.AspNetCore.Mvc.Formatters.Xml" },
+                { "Microsoft.AspNetCore.Mvc.Localization" },
+                { "Microsoft.AspNetCore.Mvc.Razor" },
+                { "Microsoft.AspNetCore.Mvc.RazorPages" },
+                { "Microsoft.AspNetCore.Mvc.TagHelpers" },
+                { "Microsoft.AspNetCore.Mvc.ViewFeatures" },
+                { "Microsoft.AspNetCore.Mvc" },
+                { "Microsoft.AspNetCore.OutputCaching" },
+                { "Microsoft.AspNetCore.RateLimiting" },
+                { "Microsoft.AspNetCore.Razor.Runtime" },
+                { "Microsoft.AspNetCore.Razor" },
+                { "Microsoft.AspNetCore.RequestDecompression" },
+                { "Microsoft.AspNetCore.ResponseCaching.Abstractions" },
+                { "Microsoft.AspNetCore.ResponseCaching" },
+                { "Microsoft.AspNetCore.ResponseCompression" },
+                { "Microsoft.AspNetCore.Rewrite" },
+                { "Microsoft.AspNetCore.Routing.Abstractions" },
+                { "Microsoft.AspNetCore.Routing" },
+                { "Microsoft.AspNetCore.Server.HttpSys" },
+                { "Microsoft.AspNetCore.Server.IIS" },
+                { "Microsoft.AspNetCore.Server.IISIntegration" },
+                { "Microsoft.AspNetCore.Server.Kestrel.Core" },
+                { "Microsoft.AspNetCore.Server.Kestrel.Transport.Quic" },
+                { "Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets" },
+                { "Microsoft.AspNetCore.Server.Kestrel" },
+                { "Microsoft.AspNetCore.Session" },
+                { "Microsoft.AspNetCore.SignalR.Common" },
+                { "Microsoft.AspNetCore.SignalR.Core" },
+                { "Microsoft.AspNetCore.SignalR.Protocols.Json" },
+                { "Microsoft.AspNetCore.SignalR" },
+                { "Microsoft.AspNetCore.StaticFiles" },
+                { "Microsoft.AspNetCore.WebSockets" },
+                { "Microsoft.AspNetCore.WebUtilities" },
+                { "Microsoft.AspNetCore" },
+                { "Microsoft.Extensions.Caching.Abstractions" },
+                { "Microsoft.Extensions.Caching.Memory" },
+                { "Microsoft.Extensions.Configuration.Abstractions" },
+                { "Microsoft.Extensions.Configuration.Binder" },
+                { "Microsoft.Extensions.Configuration.CommandLine" },
+                { "Microsoft.Extensions.Configuration.EnvironmentVariables" },
+                { "Microsoft.Extensions.Configuration.FileExtensions" },
+                { "Microsoft.Extensions.Configuration.Ini" },
+                { "Microsoft.Extensions.Configuration.Json" },
+                { "Microsoft.Extensions.Configuration.KeyPerFile" },
+                { "Microsoft.Extensions.Configuration.UserSecrets" },
+                { "Microsoft.Extensions.Configuration.Xml" },
+                { "Microsoft.Extensions.Configuration" },
+                { "Microsoft.Extensions.DependencyInjection.Abstractions" },
+                { "Microsoft.Extensions.DependencyInjection" },
+                { "Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions" },
+                { "Microsoft.Extensions.Diagnostics.HealthChecks" },
+                { "Microsoft.Extensions.Features" },
+                { "Microsoft.Extensions.FileProviders.Abstractions" },
+                { "Microsoft.Extensions.FileProviders.Composite" },
+                { "Microsoft.Extensions.FileProviders.Embedded" },
+                { "Microsoft.Extensions.FileProviders.Physical" },
+                { "Microsoft.Extensions.FileSystemGlobbing" },
+                { "Microsoft.Extensions.Hosting.Abstractions" },
+                { "Microsoft.Extensions.Hosting" },
+                { "Microsoft.Extensions.Http" },
+                { "Microsoft.Extensions.Identity.Core" },
+                { "Microsoft.Extensions.Identity.Stores" },
+                { "Microsoft.Extensions.Localization.Abstractions" },
+                { "Microsoft.Extensions.Localization" },
+                { "Microsoft.Extensions.Logging.Abstractions" },
+                { "Microsoft.Extensions.Logging.Configuration" },
+                { "Microsoft.Extensions.Logging.Console" },
+                { "Microsoft.Extensions.Logging.Debug" },
+                { "Microsoft.Extensions.Logging.EventLog" },
+                { "Microsoft.Extensions.Logging.EventSource" },
+                { "Microsoft.Extensions.Logging.TraceSource" },
+                { "Microsoft.Extensions.Logging" },
+                { "Microsoft.Extensions.ObjectPool" },
+                { "Microsoft.Extensions.Options.ConfigurationExtensions" },
+                { "Microsoft.Extensions.Options.DataAnnotations" },
+                { "Microsoft.Extensions.Options" },
+                { "Microsoft.Extensions.Primitives" },
+                { "Microsoft.Extensions.WebEncoders" },
+                { "Microsoft.JSInterop" },
+                { "Microsoft.Net.Http.Headers" },
+                { "System.Diagnostics.EventLog" },
+                { "System.IO.Pipelines" },
+                { "System.Security.Cryptography.Xml" },
+                { "System.Threading.RateLimiting" },
             };
 
         if (!VerifyAncmBinary())
diff --git a/src/ProjectTemplates/test/Templates.Blazor.Tests/package.json b/src/ProjectTemplates/test/Templates.Blazor.Tests/package.json
index add79d4bdf8c6131f3aa4cbda11494a8a172571c..cf27e5755093526e69933b30f9d28ea231ab6d07 100644
--- a/src/ProjectTemplates/test/Templates.Blazor.Tests/package.json
+++ b/src/ProjectTemplates/test/Templates.Blazor.Tests/package.json
@@ -6,7 +6,7 @@
   "private": true,
   "scripts": {
     "selenium-standalone": "selenium-standalone",
-    "prepare": "selenium-standalone install --config ../../Shared/E2ETesting/selenium-config.json"
+    "prepare": "selenium-standalone install --config ../../../Shared/E2ETesting/selenium-config.json"
   },
   "author": "",
   "license": "MIT",
diff --git a/src/ProjectTemplates/test/Templates.Tests/package.json b/src/ProjectTemplates/test/Templates.Tests/package.json
index add79d4bdf8c6131f3aa4cbda11494a8a172571c..cf27e5755093526e69933b30f9d28ea231ab6d07 100644
--- a/src/ProjectTemplates/test/Templates.Tests/package.json
+++ b/src/ProjectTemplates/test/Templates.Tests/package.json
@@ -6,7 +6,7 @@
   "private": true,
   "scripts": {
     "selenium-standalone": "selenium-standalone",
-    "prepare": "selenium-standalone install --config ../../Shared/E2ETesting/selenium-config.json"
+    "prepare": "selenium-standalone install --config ../../../Shared/E2ETesting/selenium-config.json"
   },
   "author": "",
   "license": "MIT",
diff --git a/src/SignalR/clients/csharp/Client/test/UnitTests/WebSocketsTransportTests.cs b/src/SignalR/clients/csharp/Client/test/UnitTests/WebSocketsTransportTests.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b68ee0d4672ecae4b337e35c22697bd52a8b1a26
--- /dev/null
+++ b/src/SignalR/clients/csharp/Client/test/UnitTests/WebSocketsTransportTests.cs
@@ -0,0 +1,79 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+
+using System.Net.WebSockets;
+using Microsoft.AspNetCore.Connections;
+using Microsoft.AspNetCore.Http.Connections.Client;
+using Microsoft.AspNetCore.Http.Connections.Client.Internal;
+using Microsoft.AspNetCore.SignalR.Tests;
+using Microsoft.AspNetCore.Testing;
+
+namespace Microsoft.AspNetCore.SignalR.Client.Tests;
+
+public class WebSocketsTransportTests : VerifiableLoggedTest
+{
+    // Tests that the transport can still be stopped if SendAsync and ReceiveAsync are hanging (ethernet unplugged for example)
+    [Fact]
+    public async Task StopCancelsSendAndReceive()
+    {
+        var options = new HttpConnectionOptions()
+        {
+            WebSocketFactory = (context, token) =>
+            {
+                return ValueTask.FromResult((WebSocket)new TestWebSocket());
+            },
+            CloseTimeout = TimeSpan.FromMilliseconds(1),
+        };
+
+        using (StartVerifiableLog())
+        {
+            var webSocketsTransport = new WebSocketsTransport(options, loggerFactory: LoggerFactory, () => Task.FromResult<string>(null), null);
+
+            await webSocketsTransport.StartAsync(
+                new Uri("http://fakeuri.org"), TransferFormat.Text).DefaultTimeout();
+
+            await webSocketsTransport.StopAsync().DefaultTimeout();
+
+            await webSocketsTransport.Running.DefaultTimeout();
+        }
+    }
+
+    internal class TestWebSocket : WebSocket
+    {
+        public Task ConnectAsync(Uri uri, CancellationToken cancellationToken) => Task.CompletedTask;
+
+        public override WebSocketCloseStatus? CloseStatus => null;
+
+        public override string CloseStatusDescription => string.Empty;
+
+        public override WebSocketState State => WebSocketState.Open;
+
+        public override string SubProtocol => string.Empty;
+
+        public override void Abort() { }
+
+        public override Task CloseAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken)
+            => Task.CompletedTask;
+
+        public override async Task CloseOutputAsync(WebSocketCloseStatus closeStatus, string statusDescription, CancellationToken cancellationToken)
+        {
+            await cancellationToken.WaitForCancellationAsync();
+            cancellationToken.ThrowIfCancellationRequested();
+        }
+
+        public override void Dispose() { }
+
+        public override async Task<WebSocketReceiveResult> ReceiveAsync(ArraySegment<byte> buffer, CancellationToken cancellationToken)
+        {
+            await cancellationToken.WaitForCancellationAsync();
+            cancellationToken.ThrowIfCancellationRequested();
+            return new WebSocketReceiveResult(0, WebSocketMessageType.Text, true);
+        }
+
+        public override async Task SendAsync(ArraySegment<byte> buffer, WebSocketMessageType messageType, bool endOfMessage, CancellationToken cancellationToken)
+        {
+            await cancellationToken.WaitForCancellationAsync();
+            cancellationToken.ThrowIfCancellationRequested();
+        }
+    }
+}
diff --git a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs
index 2dd87407d6328f9f122b1936aaa402a52fa5cea9..7a2c49909fea51ce13dcfb3855a2f6fdf867af5b 100644
--- a/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs
+++ b/src/SignalR/clients/csharp/Http.Connections.Client/src/Internal/WebSocketsTransport.cs
@@ -27,6 +27,7 @@ internal sealed partial class WebSocketsTransport : ITransport
     private volatile bool _aborted;
     private readonly HttpConnectionOptions _httpConnectionOptions;
     private readonly HttpClient? _httpClient;
+    private readonly CancellationTokenSource _stopCts = new CancellationTokenSource();
 
     private IDuplexPipe? _transport;
 
@@ -224,6 +225,8 @@ internal sealed partial class WebSocketsTransport : ITransport
             // Wait for send or receive to complete
             var trigger = await Task.WhenAny(receiving, sending).ConfigureAwait(false);
 
+            _stopCts.CancelAfter(_closeTimeout);
+
             if (trigger == receiving)
             {
                 // We're waiting for the application to finish and there are 2 things it could be doing
@@ -233,22 +236,14 @@ internal sealed partial class WebSocketsTransport : ITransport
                 // Cancel the application so that ReadAsync yields
                 _application.Input.CancelPendingRead();
 
-                using (var delayCts = new CancellationTokenSource())
-                {
-                    var resultTask = await Task.WhenAny(sending, Task.Delay(_closeTimeout, delayCts.Token)).ConfigureAwait(false);
+                var resultTask = await Task.WhenAny(sending, Task.Delay(_closeTimeout, _stopCts.Token)).ConfigureAwait(false);
 
-                    if (resultTask != sending)
-                    {
-                        _aborted = true;
+                if (resultTask != sending)
+                {
+                    _aborted = true;
 
-                        // Abort the websocket if we're stuck in a pending send to the client
-                        socket.Abort();
-                    }
-                    else
-                    {
-                        // Cancel the timeout
-                        delayCts.Cancel();
-                    }
+                    // Abort the websocket if we're stuck in a pending send to the client
+                    socket.Abort();
                 }
             }
             else
@@ -278,7 +273,7 @@ internal sealed partial class WebSocketsTransport : ITransport
             {
 #if NETSTANDARD2_1 || NETCOREAPP
                 // Do a 0 byte read so that idle connections don't allocate a buffer when waiting for a read
-                var result = await socket.ReceiveAsync(Memory<byte>.Empty, CancellationToken.None).ConfigureAwait(false);
+                var result = await socket.ReceiveAsync(Memory<byte>.Empty, _stopCts.Token).ConfigureAwait(false);
 
                 if (result.MessageType == WebSocketMessageType.Close)
                 {
@@ -295,13 +290,13 @@ internal sealed partial class WebSocketsTransport : ITransport
                 var memory = _application.Output.GetMemory();
 #if NETSTANDARD2_1 || NETCOREAPP
                 // Because we checked the CloseStatus from the 0 byte read above, we don't need to check again after reading
-                var receiveResult = await socket.ReceiveAsync(memory, CancellationToken.None).ConfigureAwait(false);
+                var receiveResult = await socket.ReceiveAsync(memory, _stopCts.Token).ConfigureAwait(false);
 #elif NETSTANDARD2_0 || NETFRAMEWORK
                 var isArray = MemoryMarshal.TryGetArray<byte>(memory, out var arraySegment);
                 Debug.Assert(isArray);
 
                 // Exceptions are handled above where the send and receive tasks are being run.
-                var receiveResult = await socket.ReceiveAsync(arraySegment, CancellationToken.None).ConfigureAwait(false);
+                var receiveResult = await socket.ReceiveAsync(arraySegment, _stopCts.Token).ConfigureAwait(false);
 #else
 #error TFMs need to be updated
 #endif
@@ -382,7 +377,7 @@ internal sealed partial class WebSocketsTransport : ITransport
 
                             if (WebSocketCanSend(socket))
                             {
-                                await socket.SendAsync(buffer, _webSocketMessageType).ConfigureAwait(false);
+                                await socket.SendAsync(buffer, _webSocketMessageType, _stopCts.Token).ConfigureAwait(false);
                             }
                             else
                             {
@@ -420,7 +415,7 @@ internal sealed partial class WebSocketsTransport : ITransport
                 try
                 {
                     // We're done sending, send the close frame to the client if the websocket is still open
-                    await socket.CloseOutputAsync(error != null ? WebSocketCloseStatus.InternalServerError : WebSocketCloseStatus.NormalClosure, "", CancellationToken.None).ConfigureAwait(false);
+                    await socket.CloseOutputAsync(error != null ? WebSocketCloseStatus.InternalServerError : WebSocketCloseStatus.NormalClosure, "", _stopCts.Token).ConfigureAwait(false);
                 }
                 catch (Exception ex)
                 {
@@ -472,6 +467,9 @@ internal sealed partial class WebSocketsTransport : ITransport
         // Cancel any pending reads from the application, this should start the entire shutdown process
         _application.Input.CancelPendingRead();
 
+        // Start ungraceful close timer
+        _stopCts.CancelAfter(_closeTimeout);
+
         try
         {
             await Running.ConfigureAwait(false);
@@ -485,6 +483,7 @@ internal sealed partial class WebSocketsTransport : ITransport
         finally
         {
             _webSocket?.Dispose();
+            _stopCts.Dispose();
         }
 
         Log.TransportStopped(_logger, null);
diff --git a/src/submodules/MessagePack-CSharp b/src/submodules/MessagePack-CSharp
index 6caf2996c82d2b91528fad41e9c78e09770e73d4..fe9fa0834d18492eb229ff2923024af2c87553f8 160000
--- a/src/submodules/MessagePack-CSharp
+++ b/src/submodules/MessagePack-CSharp
@@ -1 +1 @@
-Subproject commit 6caf2996c82d2b91528fad41e9c78e09770e73d4
+Subproject commit fe9fa0834d18492eb229ff2923024af2c87553f8
diff --git a/src/submodules/googletest b/src/submodules/googletest
index 7274ec186442c96e4c7dcc99c684a03e5db2ff48..afd902e992b720d1b3e106bc5e425a5768872265 160000
--- a/src/submodules/googletest
+++ b/src/submodules/googletest
@@ -1 +1 @@
-Subproject commit 7274ec186442c96e4c7dcc99c684a03e5db2ff48
+Subproject commit afd902e992b720d1b3e106bc5e425a5768872265
diff --git a/src/submodules/spa-templates b/src/submodules/spa-templates
index 9044834f67887b23da3454549ab77545f1286d58..1edf19d7c2dc9217359b75342a0ff3f0357f5bc2 160000
--- a/src/submodules/spa-templates
+++ b/src/submodules/spa-templates
@@ -1 +1 @@
-Subproject commit 9044834f67887b23da3454549ab77545f1286d58
+Subproject commit 1edf19d7c2dc9217359b75342a0ff3f0357f5bc2