diff --git a/eng/Version.Details.props b/eng/Version.Details.props
index f835914c56a741..2489d50a8af6e3 100644
--- a/eng/Version.Details.props
+++ b/eng/Version.Details.props
@@ -1,4 +1,3 @@
-
 
-    5.0.0-2.25414.103
-    5.0.0-2.25414.103
-    5.0.0-2.25414.103
-    10.0.0-preview.25414.103
-    10.0.100-rc.1.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    0.11.5-alpha.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    10.0.0-beta.25414.103
-    2.9.3-beta.25414.103
-    2.9.3-beta.25414.103
-    10.0.0-beta.25414.103
-    5.0.0-2.25414.103
-    10.0.0-rc.1.25414.103
-    10.0.100-rc.1.25414.103
-    10.0.0-rc.1.25414.103
-    10.0.0-rc.1.25414.103
-    7.0.0-preview.1.42003
-    7.0.0-preview.1.42003
-    7.0.0-preview.1.42003
-    7.0.0-preview.1.42003
-    10.0.0-rc.1.25414.103
-    2.0.0-rc.1.25414.103
-    10.0.0-rc.1.25414.103
-    10.0.0-rc.1.25414.103
-    10.0.0-rc.1.25414.103
+    5.0.0-2.25427.104
+    5.0.0-2.25427.104
+    5.0.0-2.25427.104
+    10.0.100-rc.1.25427.104
+    10.0.100-rc.1.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    0.11.5-alpha.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    10.0.0-beta.25427.104
+    2.9.3-beta.25427.104
+    2.9.3-beta.25427.104
+    10.0.0-beta.25427.104
+    5.0.0-2.25427.104
+    10.0.0-rc.2.25427.104
+    10.0.100-rc.1.25427.104
+    10.0.0-rc.2.25427.104
+    10.0.0-rc.2.25427.104
+    7.0.0-preview.1.42804
+    7.0.0-preview.1.42804
+    7.0.0-preview.1.42804
+    7.0.0-preview.1.42804
+    10.0.0-rc.2.25427.104
+    2.0.0-rc.2.25427.104
+    10.0.0-rc.2.25427.104
+    10.0.0-rc.2.25427.104
+    10.0.0-rc.2.25427.104
     
     10.0.0-beta.25310.1
     10.0.0-beta.25310.1
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 3ac18f0b9cd027..733a4aa10c1ba1 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -1,5 +1,5 @@
 
-  
+  
   
     
       https://github.com/dotnet/icu
@@ -41,91 +41,91 @@
       https://github.com/dotnet/llvm-project
       da5dd054a531e6fea65643b7e754285b73eab433
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
   
   
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
     
       https://github.com/dotnet/runtime-assets
@@ -263,33 +263,33 @@
       https://github.com/dotnet/llvm-project
       da5dd054a531e6fea65643b7e754285b73eab433
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
     
       https://github.com/dotnet/xharness
@@ -303,9 +303,9 @@
       https://github.com/dotnet/xharness
       4c17e23fcb7575baa9de575e5a96258096cbaea1
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
     
       https://dev.azure.com/dnceng/internal/_git/dotnet-optimization
@@ -331,29 +331,29 @@
       https://github.com/dotnet/runtime-assets
       385d085eb055cabeaed3dde958a900e7b31cf6ce
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
     
       https://dev.azure.com/dnceng/internal/_git/dotnet-optimization
@@ -365,21 +365,21 @@
     
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
-    
+    
       https://github.com/dotnet/dotnet
-      5088919af0e4a144ce5b294542f472bf668c9cc8
+      7ac1ca67bb1fb8a381c1c94a9f82a97725f0ccf3
     
     
       https://github.com/dotnet/node
diff --git a/eng/Versions.props b/eng/Versions.props
index d61001668130e5..6dc29cbc29b204 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -13,7 +13,7 @@
     7.0.20
     6.0.36
     rc
-    1
+    2
     
     false
     release
diff --git a/eng/build.ps1 b/eng/build.ps1
index f642b35f228900..52977efcecfbbb 100644
--- a/eng/build.ps1
+++ b/eng/build.ps1
@@ -24,6 +24,8 @@ Param(
   [string]$cmakeargs,
   [switch]$pgoinstrument,
   [string[]]$fsanitize,
+  [switch]$bootstrap,
+  [switch]$useBoostrap,
   [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
 )
 
@@ -57,6 +59,8 @@ function Get-Help() {
   Write-Host "  -usemonoruntime                Product a .NET runtime with Mono as the underlying runtime."
   Write-Host "  -verbosity (-v)                MSBuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]."
   Write-Host "                                 [Default: Minimal]"
+  Write-Host "  --useBootstrap                 Use the results of building the bootstrap subset to build published tools on the target machine."
+  Write-Host "  --bootstrap                     Build the bootstrap subset and then build the repo with --use-bootstrap."
   Write-Host "  -vs                            Open the solution with Visual Studio using the locally acquired SDK."
   Write-Host "                                 Path or any project or solution name is accepted."
   Write-Host "                                 (Example: -vs Microsoft.CSharp or -vs CoreCLR.sln)"
@@ -330,6 +334,7 @@ foreach ($argument in $PSBoundParameters.Keys)
     "configuration"          {}
     "arch"                   {}
     "fsanitize"              { $arguments += " /p:EnableNativeSanitizers=$($PSBoundParameters[$argument])"}
+    "useBootstrap"           { $arguments += " /p:UseBootstrap=$($PSBoundParameters[$argument])" }
     default                  { $arguments += " /p:$argument=$($PSBoundParameters[$argument])" }
   }
 }
@@ -345,6 +350,49 @@ $arguments += " /tl:false"
 # The later changes are ignored when using the cache.
 $env:DOTNETSDK_ALLOW_TARGETING_PACK_CACHING=0
 
+if ($bootstrap -eq $True) {
+
+  if ($actionPassedIn) {
+    # Filter out all actions
+    $bootstrapArguments = $(($arguments -split ' ') | Where-Object {
+        $_ -notmatch '^/p:(' + ($actionPassedIn -join '|') + ')=.*'
+    }) -join ' '
+
+    # Preserve Restore and Build if they're passed in
+    if ($arguments -match "/p:Restore=true") {
+      $bootstrapArguments += "/p:Restore=true"
+    }
+    if ($arguments -match "/p:Build=true") {
+      $bootstrapArguments += "/p:Build=true"
+    }
+  } else {
+    $bootstrapArguments = $arguments
+  }
+
+  if ($configuration.Count -gt 1) {
+    Write-Error "Building the bootstrap build does not support multiple configurations. Please specify a single configuration using -configuration."
+    exit 1
+  }
+
+  if ($arch.Count -gt 1) {
+    Write-Error "Building the bootstrap build does not support multiple architectures. Please specify a single architecture using -arch."
+    exit 1
+  }
+
+  $bootstrapArguments += " /p:TargetArchitecture=$($arch[0])"
+  $config = $((Get-Culture).TextInfo.ToTitleCase($configuration[0]))
+  $bootstrapArguments += " -configuration $config"
+
+  $bootstrapArguments += " /p:Subset=bootstrap /bl:$PSScriptRoot/../artifacts/log/$config/bootstrap.binlog"
+  Invoke-Expression "& `"$PSScriptRoot/common/build.ps1`" $bootstrapArguments"
+
+  # Remove artifacts from the bootstrap build so the product build is a "clean" build.
+  Write-Host "Cleaning up artifacts from bootstrap build..."
+  Remove-Item -Recurse "$PSScriptRoot/../artifacts/bin"
+  Remove-Item -Recurse "$PSScriptRoot/../artifacts/obj"
+  $arguments += " /p:UseBootstrap=true"
+}
+
 $failedBuilds = @()
 
 foreach ($config in $configuration) {
diff --git a/eng/build.sh b/eng/build.sh
index 2a79304978faae..2fb64c61ff2a7f 100755
--- a/eng/build.sh
+++ b/eng/build.sh
@@ -159,6 +159,7 @@ extraargs=()
 crossBuild=0
 portableBuild=1
 bootstrap=0
+bootstrapConfig='Debug'
 
 source $scriptroot/common/native/init-os-and-arch.sh
 
@@ -241,6 +242,7 @@ while [[ $# > 0 ]]; do
           exit 1
           ;;
       esac
+      bootstrapConfig=$val
       arguments+=("-configuration" "$val")
       shift 2
       ;;
@@ -598,7 +600,7 @@ if [[ "$bootstrap" == "1" ]]; then
       bootstrapArguments+=("$argument")
     fi
   done
-  "$scriptroot/common/build.sh" ${bootstrapArguments[@]+"${bootstrapArguments[@]}"} /p:Subset=bootstrap -bl:$scriptroot/../artifacts/log/bootstrap.binlog
+  "$scriptroot/common/build.sh" ${bootstrapArguments[@]+"${bootstrapArguments[@]}"} /p:Subset=bootstrap -bl:$scriptroot/../artifacts/log/$bootstrapConfig/bootstrap.binlog
 
   # Remove artifacts from the bootstrap build so the product build is a "clean" build.
   echo "Cleaning up artifacts from bootstrap build..."
diff --git a/eng/common/SetupNugetSources.ps1 b/eng/common/SetupNugetSources.ps1
index 5db4ad71ee2f3e..792b60b49d424d 100644
--- a/eng/common/SetupNugetSources.ps1
+++ b/eng/common/SetupNugetSources.ps1
@@ -10,8 +10,8 @@
 #    displayName: Setup Private Feeds Credentials
 #    condition: eq(variables['Agent.OS'], 'Windows_NT')
 #    inputs:
-#      filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
-#      arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+#      filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
+#      arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $Env:Token
 #    env:
 #      Token: $(dn-bot-dnceng-artifact-feeds-rw)
 #
diff --git a/eng/common/SetupNugetSources.sh b/eng/common/SetupNugetSources.sh
index 4604b61b0323ae..facb415ca6ff35 100755
--- a/eng/common/SetupNugetSources.sh
+++ b/eng/common/SetupNugetSources.sh
@@ -11,8 +11,8 @@
 #  - task: Bash@3
 #    displayName: Setup Internal Feeds
 #    inputs:
-#      filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
-#      arguments: $(Build.SourcesDirectory)/NuGet.config
+#      filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.sh
+#      arguments: $(System.DefaultWorkingDirectory)/NuGet.config
 #    condition: ne(variables['Agent.OS'], 'Windows_NT')
 #  - task: NuGetAuthenticate@1
 #
diff --git a/eng/common/core-templates/job/job.yml b/eng/common/core-templates/job/job.yml
index d9013251542c73..5ce51840619888 100644
--- a/eng/common/core-templates/job/job.yml
+++ b/eng/common/core-templates/job/job.yml
@@ -163,7 +163,7 @@ jobs:
       inputs:
         testResultsFormat: 'xUnit'
         testResultsFiles: '*.xml'
-        searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+        searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)'
         testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit
         mergeTestResults: ${{ parameters.mergeTestResults }}
       continueOnError: true
@@ -174,7 +174,7 @@ jobs:
       inputs:
         testResultsFormat: 'VSTest'
         testResultsFiles: '*.trx'
-        searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
+        searchFolder: '$(System.DefaultWorkingDirectory)/artifacts/TestResults/$(_BuildConfig)'
         testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx
         mergeTestResults: ${{ parameters.mergeTestResults }}
       continueOnError: true
@@ -218,7 +218,7 @@ jobs:
     - task: CopyFiles@2
       displayName: Gather buildconfiguration for build retry
       inputs:
-        SourceFolder: '$(Build.SourcesDirectory)/eng/common/BuildConfiguration'
+        SourceFolder: '$(System.DefaultWorkingDirectory)/eng/common/BuildConfiguration'
         Contents: '**'
         TargetFolder: '$(Build.ArtifactStagingDirectory)/eng/common/BuildConfiguration'
       continueOnError: true
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index 8bf7d23355bc5e..c5788829a872e5 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -8,7 +8,7 @@ parameters:
   CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex
   GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
 
-  SourcesDirectory: $(Build.SourcesDirectory)
+  SourcesDirectory: $(System.DefaultWorkingDirectory)
   CreatePr: true
   AutoCompletePr: false
   ReusePr: true
@@ -68,7 +68,7 @@ jobs:
     - ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}:
       - task: Powershell@2
         inputs:
-          filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
+          filePath: $(System.DefaultWorkingDirectory)/eng/common/generate-locproject.ps1
           arguments: $(_GenerateLocProjectArguments)
         displayName: Generate LocProject.json
         condition: ${{ parameters.condition }}
@@ -103,7 +103,7 @@ jobs:
     - task: CopyFiles@2
       displayName: Copy LocProject.json
       inputs:
-        SourceFolder: '$(Build.SourcesDirectory)/eng/Localize/'
+        SourceFolder: '$(System.DefaultWorkingDirectory)/eng/Localize/'
         Contents: 'LocProject.json'
         TargetFolder: '$(Build.ArtifactStagingDirectory)/loc'
       condition: ${{ parameters.condition }}
diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml
index d5303229c97e27..348cd16376f10d 100644
--- a/eng/common/core-templates/job/publish-build-assets.yml
+++ b/eng/common/core-templates/job/publish-build-assets.yml
@@ -38,6 +38,8 @@ parameters:
   # Optional: A minimatch pattern for the asset manifests to publish to BAR
   assetManifestsPattern: '*/manifests/**/*.xml'
 
+  repositoryAlias: self
+
 jobs:
 - job: Asset_Registry_Publish
 
@@ -78,7 +80,7 @@ jobs:
     - 'Illegal entry point, is1ESPipeline is not defined. Repository yaml should not directly reference templates in core-templates folder.': error
 
   - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
-    - checkout: self
+    - checkout: ${{ parameters.repositoryAlias }}
       fetchDepth: 3
       clean: true
 
@@ -117,7 +119,7 @@ jobs:
         azureSubscription: "Darc: Maestro Production"
         scriptType: ps
         scriptLocation: scriptPath
-        scriptPath: $(Build.SourcesDirectory)/eng/common/sdk-task.ps1
+        scriptPath: $(System.DefaultWorkingDirectory)/eng/common/sdk-task.ps1
         arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
           /p:ManifestsPath='$(Build.StagingDirectory)/AssetManifests'
           /p:IsAssetlessBuild=${{ parameters.isAssetlessBuild }}
@@ -137,7 +139,7 @@ jobs:
           Add-Content -Path $filePath -Value "$(DefaultChannels)"
           Add-Content -Path $filePath -Value $(IsStableBuild)
 
-          $symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt"
+          $symbolExclusionfile = "$(System.DefaultWorkingDirectory)/eng/SymbolPublishingExclusionsFile.txt"
           if (Test-Path -Path $symbolExclusionfile)
           {
             Write-Host "SymbolExclusionFile exists"
@@ -177,7 +179,7 @@ jobs:
           azureSubscription: "Darc: Maestro Production"
           scriptType: ps
           scriptLocation: scriptPath
-          scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
+          scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1
           arguments: >
             -BuildId $(BARBuildId)
             -PublishingInfraVersion 3
diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml
index 693b00b370447b..dbc14ac580a271 100644
--- a/eng/common/core-templates/jobs/codeql-build.yml
+++ b/eng/common/core-templates/jobs/codeql-build.yml
@@ -24,7 +24,7 @@ jobs:
       - name: DefaultGuardianVersion
         value: 0.109.0
       - name: GuardianPackagesConfigFile
-        value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
+        value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config
       - name: GuardianVersion
         value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }}
   
diff --git a/eng/common/core-templates/jobs/jobs.yml b/eng/common/core-templates/jobs/jobs.yml
index 2f992b2c6eccbd..b637cb6e94808e 100644
--- a/eng/common/core-templates/jobs/jobs.yml
+++ b/eng/common/core-templates/jobs/jobs.yml
@@ -43,6 +43,7 @@ parameters:
 
   artifacts: {}
   is1ESPipeline: ''
+  repositoryAlias: self
 
 # Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
 # and some (Microbuild) should only be applied to non-PR cases for internal builds.
@@ -114,3 +115,4 @@ jobs:
         enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
         artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
         signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}
+        repositoryAlias: ${{ parameters.repositoryAlias }}
diff --git a/eng/common/core-templates/post-build/post-build.yml b/eng/common/core-templates/post-build/post-build.yml
index a151fd811e3e48..f6f87fe5c675d9 100644
--- a/eng/common/core-templates/post-build/post-build.yml
+++ b/eng/common/core-templates/post-build/post-build.yml
@@ -154,7 +154,7 @@ stages:
         - task: PowerShell@2
           displayName: Validate
           inputs:
-            filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
+            filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/nuget-validation.ps1
             arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
 
     - job:
@@ -208,7 +208,7 @@ stages:
             filePath: eng\common\sdk-task.ps1
             arguments: -task SigningValidation -restore -msbuildEngine vs
               /p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
-              /p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
+              /p:SignCheckExclusionsFile='$(System.DefaultWorkingDirectory)/eng/SignCheckExclusionsFile.txt'
               ${{ parameters.signingValidationAdditionalParameters }}
 
         - template: /eng/common/core-templates/steps/publish-logs.yml
@@ -258,7 +258,7 @@ stages:
         - task: PowerShell@2
           displayName: Validate
           inputs:
-            filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1
+            filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/sourcelink-validation.ps1
             arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/ 
               -ExtractPath $(Agent.BuildDirectory)/Extract/ 
               -GHRepoName $(Build.Repository.Name) 
@@ -313,7 +313,7 @@ stages:
             azureSubscription: "Darc: Maestro Production"
             scriptType: ps
             scriptLocation: scriptPath
-            scriptPath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
+            scriptPath: $(System.DefaultWorkingDirectory)/eng/common/post-build/publish-using-darc.ps1
             arguments: >
               -BuildId $(BARBuildId)
               -PublishingInfraVersion ${{ parameters.publishingInfraVersion }}
diff --git a/eng/common/core-templates/post-build/setup-maestro-vars.yml b/eng/common/core-templates/post-build/setup-maestro-vars.yml
index f7602980dbe721..a7abd58c4bb609 100644
--- a/eng/common/core-templates/post-build/setup-maestro-vars.yml
+++ b/eng/common/core-templates/post-build/setup-maestro-vars.yml
@@ -36,7 +36,7 @@ steps:
             $AzureDevOpsBuildId = $Env:Build_BuildId
           }
           else {
-            . $(Build.SourcesDirectory)\eng\common\tools.ps1
+            . $(System.DefaultWorkingDirectory)\eng\common\tools.ps1
             $darc = Get-Darc
             $buildInfo = & $darc get-build `
               --id ${{ parameters.BARBuildId }} `
diff --git a/eng/common/core-templates/steps/enable-internal-sources.yml b/eng/common/core-templates/steps/enable-internal-sources.yml
index 64f881bffc3cf1..4085512b690910 100644
--- a/eng/common/core-templates/steps/enable-internal-sources.yml
+++ b/eng/common/core-templates/steps/enable-internal-sources.yml
@@ -17,8 +17,8 @@ steps:
     - task: PowerShell@2
       displayName: Setup Internal Feeds
       inputs:
-        filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
-        arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $Env:Token
+        filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
+        arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $Env:Token
       env:
         Token: ${{ parameters.legacyCredential }}
   # If running on dnceng (internal project), just use the default behavior for NuGetAuthenticate.
@@ -29,8 +29,8 @@ steps:
       - task: PowerShell@2
         displayName: Setup Internal Feeds
         inputs:
-          filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
-          arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config
+          filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
+          arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config
     - ${{ else }}:
       - template: /eng/common/templates/steps/get-federated-access-token.yml
         parameters:
@@ -39,8 +39,8 @@ steps:
       - task: PowerShell@2
         displayName: Setup Internal Feeds
         inputs:
-          filePath: $(Build.SourcesDirectory)/eng/common/SetupNugetSources.ps1
-          arguments: -ConfigFile $(Build.SourcesDirectory)/NuGet.config -Password $(dnceng-artifacts-feeds-read-access-token)
+          filePath: $(System.DefaultWorkingDirectory)/eng/common/SetupNugetSources.ps1
+          arguments: -ConfigFile $(System.DefaultWorkingDirectory)/NuGet.config -Password $(dnceng-artifacts-feeds-read-access-token)
   # This is required in certain scenarios to install the ADO credential provider.
   # It installed by default in some msbuild invocations (e.g. VS msbuild), but needs to be installed for others
   # (e.g. dotnet msbuild).
diff --git a/eng/common/core-templates/steps/generate-sbom.yml b/eng/common/core-templates/steps/generate-sbom.yml
index 44a9636cdff90a..c05f650279795f 100644
--- a/eng/common/core-templates/steps/generate-sbom.yml
+++ b/eng/common/core-templates/steps/generate-sbom.yml
@@ -6,7 +6,7 @@
 
 parameters:
   PackageVersion: 10.0.0
-  BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
+  BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts'
   PackageName: '.NET'
   ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
   IgnoreDirectories: ''
diff --git a/eng/common/core-templates/steps/install-microbuild.yml b/eng/common/core-templates/steps/install-microbuild.yml
index da30e67bc34c95..d6b9878f54db7f 100644
--- a/eng/common/core-templates/steps/install-microbuild.yml
+++ b/eng/common/core-templates/steps/install-microbuild.yml
@@ -12,6 +12,7 @@ parameters:
   # variable is not available in template expression. _SignType has a very large proliferation across .NET, so replacing it is tough.
   microbuildUseESRP: true
   # Location of the MicroBuild output folder
+  # NOTE: There's something that relies on this being in the "default" source directory for tasks such as Signing to work properly.
   microBuildOutputFolder: '$(Build.SourcesDirectory)'
 
   continueOnError: false
@@ -46,17 +47,19 @@ steps:
       displayName: 'Validate ESRP usage (Non-Windows)'
       condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'))
 
+    # Two different MB install steps. This is due to not being able to use the agent OS during
+    # YAML expansion, and Windows vs. Linux/Mac uses different service connections. However,
+    # we can avoid including the MB install step if not enabled at all. This avoids a bunch of
+    # extra pipeline authorizations, since most pipelines do not sign on non-Windows.
     - task: MicroBuildSigningPlugin@4
-      displayName: Install MicroBuild plugin
+      displayName: Install MicroBuild plugin (Windows)
       inputs:
         signType: $(_SignType)
         zipSources: false
         feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
         ${{ if eq(parameters.microbuildUseESRP, true) }}:
-          ${{ if eq(parameters.enableMicrobuildForMacAndLinux, 'true') }}:
-            azureSubscription: 'MicroBuild Signing Task (DevDiv)'
-            useEsrpCli: true
-          ${{ elseif eq(variables['System.TeamProject'], 'DevDiv') }}:
+          ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)'
+          ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
             ConnectedPMEServiceName: 6cc74545-d7b9-4050-9dfa-ebefcc8961ea
           ${{ else }}:
             ConnectedPMEServiceName: 248d384a-b39b-46e3-8ad5-c2c210d5e7ca
@@ -65,16 +68,24 @@ steps:
         MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }}
         SYSTEM_ACCESSTOKEN: $(System.AccessToken)
       continueOnError: ${{ parameters.continueOnError }}
-      condition: and(
-        succeeded(),
-        or(
-          and(
-            eq(variables['Agent.Os'], 'Windows_NT'),
-            in(variables['_SignType'], 'real', 'test')
-          ),
-          and(
-            ${{ eq(parameters.enableMicrobuildForMacAndLinux, true) }},
-            ne(variables['Agent.Os'], 'Windows_NT'),
-            eq(variables['_SignType'], 'real')
-          )
-        ))
+      condition: and(succeeded(), eq(variables['Agent.Os'], 'Windows_NT'), in(variables['_SignType'], 'real', 'test'))
+
+    - ${{ if eq(parameters.enableMicrobuildForMacAndLinux, true) }}:
+      - task: MicroBuildSigningPlugin@4
+        displayName: Install MicroBuild plugin (non-Windows)
+        inputs:
+          signType: $(_SignType)
+          zipSources: false
+          feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
+          ${{ if eq(parameters.microbuildUseESRP, true) }}:
+            ConnectedServiceName: 'MicroBuild Signing Task (DevDiv)'
+            ${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
+              ConnectedPMEServiceName: beb8cb23-b303-4c95-ab26-9e44bc958d39
+            ${{ else }}:
+              ConnectedPMEServiceName: c24de2a5-cc7a-493d-95e4-8e5ff5cad2bc
+        env:
+          TeamName: $(_TeamName)
+          MicroBuildOutputFolderOverride: ${{ parameters.microBuildOutputFolder }}
+          SYSTEM_ACCESSTOKEN: $(System.AccessToken)
+        continueOnError: ${{ parameters.continueOnError }}
+        condition: and(succeeded(), ne(variables['Agent.Os'], 'Windows_NT'),  eq(variables['_SignType'], 'real'))
diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml
index de24d0087c58bb..10f825e270a03b 100644
--- a/eng/common/core-templates/steps/publish-logs.yml
+++ b/eng/common/core-templates/steps/publish-logs.yml
@@ -12,22 +12,22 @@ steps:
   inputs:
     targetType: inline
     script: |
-      New-Item -ItemType Directory $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
-      Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
+      New-Item -ItemType Directory $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
+      Move-Item -Path $(System.DefaultWorkingDirectory)/artifacts/log/Debug/* $(System.DefaultWorkingDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
   continueOnError: true
   condition: always()
     
 - task: PowerShell@2
   displayName: Redact Logs
   inputs:
-    filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1
+    filePath: $(System.DefaultWorkingDirectory)/eng/common/post-build/redact-logs.ps1
     # For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml
-    # Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt'
+    # Sensitive data can as well be added to $(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt'
     #  If the file exists - sensitive data for redaction will be sourced from it
     #  (single entry per line, lines starting with '# ' are considered comments and skipped)
-    arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs' 
+    arguments: -InputPath '$(System.DefaultWorkingDirectory)/PostBuildLogs' 
       -BinlogToolVersion ${{parameters.BinlogToolVersion}}
-      -TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt'
+      -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt'
       '$(publishing-dnceng-devdiv-code-r-build-re)'
       '$(MaestroAccessToken)'
       '$(dn-bot-all-orgs-artifact-feeds-rw)'
@@ -44,7 +44,7 @@ steps:
 - task: CopyFiles@2
   displayName: Gather post build logs
   inputs:
-    SourceFolder: '$(Build.SourcesDirectory)/PostBuildLogs'
+    SourceFolder: '$(System.DefaultWorkingDirectory)/PostBuildLogs'
     Contents: '**'
     TargetFolder: '$(Build.ArtifactStagingDirectory)/PostBuildLogs'
   condition: always()
diff --git a/eng/common/core-templates/steps/source-index-stage1-publish.yml b/eng/common/core-templates/steps/source-index-stage1-publish.yml
index c2917c1efc1cb7..e9a694afa58e66 100644
--- a/eng/common/core-templates/steps/source-index-stage1-publish.yml
+++ b/eng/common/core-templates/steps/source-index-stage1-publish.yml
@@ -1,6 +1,6 @@
 parameters:
-  sourceIndexUploadPackageVersion: 2.0.0-20250425.2
-  sourceIndexProcessBinlogPackageVersion: 1.0.1-20250515.1
+  sourceIndexUploadPackageVersion: 2.0.0-20250818.1
+  sourceIndexProcessBinlogPackageVersion: 1.0.1-20250818.1
   sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
   binlogPath: artifacts/log/Debug/Build.binlog
 
@@ -20,7 +20,7 @@ steps:
   # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
   workingDirectory: $(Agent.TempDirectory)
 
-- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
+- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i ${{parameters.BinlogPath}} -r $(System.DefaultWorkingDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
   displayName: "Source Index: Process Binlog into indexable sln"
 
 - ${{ if and(ne(parameters.runAsPublic, 'true'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
diff --git a/eng/common/generate-locproject.ps1 b/eng/common/generate-locproject.ps1
index 524aaa57f2b742..fa1cdc2b30076a 100644
--- a/eng/common/generate-locproject.ps1
+++ b/eng/common/generate-locproject.ps1
@@ -33,15 +33,27 @@ $jsonTemplateFiles | ForEach-Object {
 
 $jsonWinformsTemplateFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "en\\strings\.json" } # current winforms pattern
 
+$wxlFilesV3 = @()
+$wxlFilesV5 = @()
 $wxlFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\.+\.wxl" -And -Not( $_.Directory.Name -Match "\d{4}" ) } # localized files live in four digit lang ID directories; this excludes them
 if (-not $wxlFiles) {
     $wxlEnFiles = Get-ChildItem -Recurse -Path "$SourcesDirectory" | Where-Object { $_.FullName -Match "\\1033\\.+\.wxl" } #  pick up en files (1033 = en) specifically so we can copy them to use as the neutral xlf files
     if ($wxlEnFiles) {
-      $wxlFiles = @()
-      $wxlEnFiles | ForEach-Object {
-        $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
-        $wxlFiles += Copy-Item "$($_.FullName)" -Destination $destinationFile -PassThru
-      }
+        $wxlFiles = @()
+        $wxlEnFiles | ForEach-Object {
+            $destinationFile = "$($_.Directory.Parent.FullName)\$($_.Name)"
+            $content = Get-Content $_.FullName -Raw
+
+            # Split files on schema to select different parser settings in the generated project.
+            if ($content -like "*http://wixtoolset.org/schemas/v4/wxl*")
+            {
+                $wxlFilesV5 += Copy-Item $_.FullName -Destination $destinationFile -PassThru
+            }
+            elseif ($content -like "*http://schemas.microsoft.com/wix/2006/localization*")
+            {
+                $wxlFilesV3 += Copy-Item $_.FullName -Destination $destinationFile -PassThru
+            }
+        }
     }
 }
 
@@ -114,7 +126,32 @@ $locJson = @{
             CloneLanguageSet = "WiX_CloneLanguages"
             LssFiles = @( "wxl_loc.lss" )
             LocItems = @(
-                $wxlFiles | ForEach-Object {
+                $wxlFilesV3 | ForEach-Object {
+                    $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
+                    $continue = $true
+                    foreach ($exclusion in $exclusions.Exclusions) {
+                        if ($_.FullName.Contains($exclusion)) {
+                            $continue = $false
+                        }
+                    }
+                    $sourceFile = ($_.FullName | Resolve-Path -Relative)
+                    if ($continue)
+                    {
+                        return @{
+                            SourceFile = $sourceFile
+                            CopyOption = "LangIDOnPath"
+                            OutputPath = $outputPath
+                        }
+                    }
+                }
+            )
+        },
+        @{
+            LanguageSet = $LanguageSet
+            CloneLanguageSet = "WiX_CloneLanguages"
+            LssFiles = @( "P210WxlSchemaV4.lss" )
+            LocItems = @(
+                $wxlFilesV5 | ForEach-Object {
                     $outputPath = "$($_.Directory.FullName | Resolve-Path -Relative)\"
                     $continue = $true
                     foreach ($exclusion in $exclusions.Exclusions) {
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index a9d2a2d2699666..b62e132d32a40d 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -7,13 +7,14 @@ Param(
   [switch] $restore,
   [switch] $prepareMachine,
   [switch][Alias('nobl')]$excludeCIBinaryLog,
+  [switch]$noWarnAsError,
   [switch] $help,
   [Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
 )
 
 $ci = $true
 $binaryLog = if ($excludeCIBinaryLog) { $false } else { $true }
-$warnAsError = $true
+$warnAsError = if ($noWarnAsError) { $false } else { $true }
 
 . $PSScriptRoot\tools.ps1
 
diff --git a/eng/common/sdk-task.sh b/eng/common/sdk-task.sh
index 2f83adc0269faf..0c92f81d74f7fa 100755
--- a/eng/common/sdk-task.sh
+++ b/eng/common/sdk-task.sh
@@ -10,6 +10,7 @@ show_usage() {
 
     echo "Advanced settings:"
     echo "  --excludeCIBinarylog     Don't output binary log (short: -nobl)"
+    echo "  --noWarnAsError          Do not warn as error
     echo ""
     echo "Command line arguments not listed above are passed thru to msbuild."
 }
@@ -52,6 +53,7 @@ exclude_ci_binary_log=false
 restore=false
 help=false
 properties=''
+warnAsError=true
 
 while (($# > 0)); do
   lowerI="$(echo $1 | tr "[:upper:]" "[:lower:]")"
@@ -73,6 +75,10 @@ while (($# > 0)); do
       exclude_ci_binary_log=true
       shift 1
       ;;
+    --noWarnAsError)
+      warnAsError=false
+      shift 1
+      ;;
     --help)
       help=true
       shift 1
@@ -85,7 +91,6 @@ while (($# > 0)); do
 done
 
 ci=true
-warnAsError=true
 
 if $help; then
   show_usage
diff --git a/eng/common/template-guidance.md b/eng/common/template-guidance.md
index 98bbc1ded0ba88..4bf4cf41bd7c76 100644
--- a/eng/common/template-guidance.md
+++ b/eng/common/template-guidance.md
@@ -50,7 +50,7 @@ extends:
           - task: CopyFiles@2
               displayName: Gather build output
               inputs:
-                SourceFolder: '$(Build.SourcesDirectory)/artifacts/marvel'
+                SourceFolder: '$(System.DefaultWorkingDirectory)/artifacts/marvel'
                 Contents: '**'
                 TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/marvel'
 ```
diff --git a/eng/common/templates-official/job/job.yml b/eng/common/templates-official/job/job.yml
index a8a94328745823..92a0664f5647d5 100644
--- a/eng/common/templates-official/job/job.yml
+++ b/eng/common/templates-official/job/job.yml
@@ -3,7 +3,7 @@ parameters:
   enableSbom: true
   runAsPublic: false
   PackageVersion: 9.0.0
-  BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
+  BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts'
 
 jobs:
 - template: /eng/common/core-templates/job/job.yml
diff --git a/eng/common/templates-official/variables/sdl-variables.yml b/eng/common/templates-official/variables/sdl-variables.yml
index dbdd66d4a4b3a0..f1311bbb1b33d9 100644
--- a/eng/common/templates-official/variables/sdl-variables.yml
+++ b/eng/common/templates-official/variables/sdl-variables.yml
@@ -4,4 +4,4 @@ variables:
 - name: DefaultGuardianVersion
   value: 0.109.0
 - name: GuardianPackagesConfigFile
-  value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
\ No newline at end of file
+  value: $(System.DefaultWorkingDirectory)\eng\common\sdl\packages.config
\ No newline at end of file
diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml
index 7cbf668c22bc04..238fa0818f7b27 100644
--- a/eng/common/templates/job/job.yml
+++ b/eng/common/templates/job/job.yml
@@ -6,7 +6,7 @@ parameters:
   enableSbom: true
   runAsPublic: false
   PackageVersion: 9.0.0
-  BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
+  BuildDropPath: '$(System.DefaultWorkingDirectory)/artifacts'
 
 jobs:
 - template: /eng/common/core-templates/job/job.yml
@@ -77,7 +77,7 @@ jobs:
         parameters:
           is1ESPipeline: false
           args:
-            targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration'
+            targetPath: '$(System.DefaultWorkingDirectory)\eng\common\BuildConfiguration'
             artifactName: 'BuildConfiguration'
             displayName: 'Publish build retry configuration'
             continueOnError: true
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index d4cfd9ccd806c9..06b44de78709cf 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -544,7 +544,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){
   if (Get-Member -InputObject $GlobalJson.tools -Name 'vswhere') {
     $vswhereVersion = $GlobalJson.tools.vswhere
   } else {
-    $vswhereVersion = '2.5.2'
+    # keep this in sync with the VSWhereVersion in DefaultVersions.props
+    $vswhereVersion = '3.1.7'
   }
 
   $vsWhereDir = Join-Path $ToolsDir "vswhere\$vswhereVersion"
@@ -552,7 +553,8 @@ function LocateVisualStudio([object]$vsRequirements = $null){
 
   if (!(Test-Path $vsWhereExe)) {
     Create-Directory $vsWhereDir
-    Write-Host 'Downloading vswhere'
+    Write-Host "Downloading vswhere $vswhereVersion"
+    $ProgressPreference = 'SilentlyContinue' # Don't display the console progress UI - it's a huge perf hit
     Retry({
       Invoke-WebRequest "https://netcorenativeassets.blob.core.windows.net/resource-packages/external/windows/vswhere/$vswhereVersion/vswhere.exe" -OutFile $vswhereExe
     })
diff --git a/global.json b/global.json
index 5da2c8d6d5d1cd..20898d7a92384f 100644
--- a/global.json
+++ b/global.json
@@ -1,18 +1,18 @@
 {
   "sdk": {
-    "version": "10.0.100-rc.1.25411.109",
+    "version": "10.0.100-rc.1.25420.111",
     "allowPrerelease": true,
     "rollForward": "major"
   },
   "tools": {
-    "dotnet": "10.0.100-rc.1.25411.109"
+    "dotnet": "10.0.100-rc.1.25420.111"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25414.103",
-    "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25414.103",
-    "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25414.103",
+    "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.25427.104",
+    "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.25427.104",
+    "Microsoft.DotNet.SharedFramework.Sdk": "10.0.0-beta.25427.104",
     "Microsoft.Build.NoTargets": "3.7.0",
     "Microsoft.Build.Traversal": "3.4.0",
-    "Microsoft.NET.Sdk.IL": "10.0.0-rc.1.25414.103"
+    "Microsoft.NET.Sdk.IL": "10.0.0-rc.2.25427.104"
   }
 }
diff --git a/src/installer/tests/TestUtils/CommandExtensions.cs b/src/installer/tests/TestUtils/CommandExtensions.cs
index bc5303a1593b30..70c18ab08ae25d 100644
--- a/src/installer/tests/TestUtils/CommandExtensions.cs
+++ b/src/installer/tests/TestUtils/CommandExtensions.cs
@@ -46,9 +46,13 @@ public static Command DotNetRoot(this Command command, string dotNetRoot, string
             if (!string.IsNullOrEmpty(architecture))
                 return command.EnvironmentVariable(Constants.DotnetRoot.ArchitectureEnvironmentVariablePrefix + architecture.ToUpper(), dotNetRoot);
 
+            // If we are clearing out the variable, make sure we clear out any architecture-specific one too
+            if (string.IsNullOrEmpty(dotNetRoot))
+                command = command.EnvironmentVariable($"{Constants.DotnetRoot.ArchitectureEnvironmentVariablePrefix}{TestContext.BuildArchitecture.ToUpperInvariant()}", dotNetRoot);
+
             return command
-                .EnvironmentVariable(Constants.DotnetRoot.EnvironmentVariable, dotNetRoot)
-                .EnvironmentVariable(Constants.DotnetRoot.WindowsX86EnvironmentVariable, dotNetRoot);
+                    .EnvironmentVariable(Constants.DotnetRoot.EnvironmentVariable, dotNetRoot)
+                    .EnvironmentVariable(Constants.DotnetRoot.WindowsX86EnvironmentVariable, dotNetRoot);
         }
 
         public static Command MultilevelLookup(this Command command, bool? enable)
diff --git a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
index cae5396e768efb..43ae1221530afb 100644
--- a/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
+++ b/src/libraries/Microsoft.NETCore.Platforms/src/Microsoft.NETCore.Platforms.csproj
@@ -20,9 +20,16 @@
     <_generateRuntimeGraphTask>$([MSBuild]::NormalizePath('$(BaseOutputPath)', $(Configuration), '$(_generateRuntimeGraphTargetFramework)', '$(AssemblyName).dll'))
   
 
-  
-    
-    
+  
+    
+    
+    
   
 
   
diff --git a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj
index f442060dc184b0..253e99c7fb0832 100644
--- a/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj
+++ b/src/libraries/System.Runtime.InteropServices/tests/LibraryImportGenerator.UnitTests/LibraryImportGenerator.Unit.Tests.csproj
@@ -53,7 +53,7 @@
 
   
     
-      
+      
     
   
 
diff --git a/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj b/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj
index 1805aad4e3adc8..9f4bd49c18320a 100644
--- a/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj
+++ b/src/tasks/Crossgen2Tasks/Crossgen2Tasks.csproj
@@ -9,10 +9,17 @@
     
     
-    
-    
-    
-    
+
+    
+
+    
+    
+    
+    
+    
   
   
     
diff --git a/src/tasks/installer.tasks/installer.tasks.csproj b/src/tasks/installer.tasks/installer.tasks.csproj
index 031a237ecc1860..3baf62258c474a 100644
--- a/src/tasks/installer.tasks/installer.tasks.csproj
+++ b/src/tasks/installer.tasks/installer.tasks.csproj
@@ -7,7 +7,11 @@
 
   
     
-    
+    
+    
+    
+