diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index ddfd740c9169..3cffd6e35247 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -384,31 +384,31 @@
       https://github.com/dotnet/runtime
       a9ca41321284c0d1e423bfc240e9c9f8be970b8b
     
-    
+    
       https://github.com/dotnet/arcade
-      e882d5925ca55013d5810ac51e36574a65c5da84
+      c1852b9ac37df9a86630c2f078dbee43f7b186e7
     
     
-    
+    
       https://github.com/dotnet/arcade
-      e882d5925ca55013d5810ac51e36574a65c5da84
+      c1852b9ac37df9a86630c2f078dbee43f7b186e7
       
     
-    
+    
       https://github.com/dotnet/arcade
-      e882d5925ca55013d5810ac51e36574a65c5da84
+      c1852b9ac37df9a86630c2f078dbee43f7b186e7
     
-    
+    
       https://github.com/dotnet/arcade
-      e882d5925ca55013d5810ac51e36574a65c5da84
+      c1852b9ac37df9a86630c2f078dbee43f7b186e7
     
-    
+    
       https://github.com/dotnet/arcade
-      e882d5925ca55013d5810ac51e36574a65c5da84
+      c1852b9ac37df9a86630c2f078dbee43f7b186e7
     
-    
+    
       https://github.com/dotnet/arcade
-      e882d5925ca55013d5810ac51e36574a65c5da84
+      c1852b9ac37df9a86630c2f078dbee43f7b186e7
     
     
       https://github.com/dotnet/extensions
diff --git a/eng/Versions.props b/eng/Versions.props
index 566f7e66cc19..1b3c5f7110b9 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -165,10 +165,10 @@
     6.2.4
     6.2.4
     
-    10.0.0-beta.24562.15
-    10.0.0-beta.24562.15
-    10.0.0-beta.24562.15
-    10.0.0-beta.24562.15
+    10.0.0-beta.24564.1
+    10.0.0-beta.24564.1
+    10.0.0-beta.24564.1
+    10.0.0-beta.24564.1
     
     10.0.0-alpha.1.24554.1
     
diff --git a/eng/common/core-templates/job/source-build.yml b/eng/common/core-templates/job/source-build.yml
index c4713c8b6ede..05f7ad6ef0d5 100644
--- a/eng/common/core-templates/job/source-build.yml
+++ b/eng/common/core-templates/job/source-build.yml
@@ -12,9 +12,10 @@ parameters:
   #   The name of the job. This is included in the job ID.
   # targetRID: ''
   #   The name of the target RID to use, instead of the one auto-detected by Arcade.
-  # nonPortable: false
+  # portableBuild: false
   #   Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than
-  #   linux-x64), and compiling against distro-provided packages rather than portable ones.
+  #   linux-x64), and compiling against distro-provided packages rather than portable ones. The
+  #   default is portable mode.
   # skipPublishValidation: false
   #   Disables publishing validation.  By default, a check is performed to ensure no packages are
   #   published by source-build.
diff --git a/eng/common/core-templates/steps/source-build.yml b/eng/common/core-templates/steps/source-build.yml
index c9271c011585..4da05afe0544 100644
--- a/eng/common/core-templates/steps/source-build.yml
+++ b/eng/common/core-templates/steps/source-build.yml
@@ -76,6 +76,11 @@ steps:
       assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml
     fi
 
+    portableBuildArgs=
+    if [ '${{ parameters.platform.portableBuild }}' != '' ]; then
+      portableBuildArgs='/p:PortabelBuild=${{ parameters.platform.portableBuild }}'
+    fi
+
     ${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \
       --configuration $buildConfig \
       --restore --build --pack $publishArgs -bl \
@@ -85,7 +90,7 @@ steps:
       $targetRidArgs \
       $runtimeOsArgs \
       $baseOsArgs \
-      /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
+      $portableBuildArgs \
       /p:DotNetBuildSourceOnly=true \
       /p:DotNetBuildRepo=true \
       /p:AssetManifestFileName=$assetManifestFileName
diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1
index aab40de3fd9a..4f0546dce120 100644
--- a/eng/common/sdk-task.ps1
+++ b/eng/common/sdk-task.ps1
@@ -64,7 +64,7 @@ try {
       $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty
     }
     if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) {
-      $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.10.0-pre.4.0" -MemberType NoteProperty
+      $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.12.0" -MemberType NoteProperty
     }
     if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
         $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true
diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1
index 7bd54b6ba9b1..bd80ccccb516 100644
--- a/eng/common/tools.ps1
+++ b/eng/common/tools.ps1
@@ -383,8 +383,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
 
   # If the version of msbuild is going to be xcopied,
   # use this version. Version matches a package here:
-  # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.10.0-pre.4.0
-  $defaultXCopyMSBuildVersion = '17.10.0-pre.4.0'
+  # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/Microsoft.DotNet.Arcade.MSBuild.Xcopy/versions/17.12.0
+  $defaultXCopyMSBuildVersion = '17.12.0'
 
   if (!$vsRequirements) {
     if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
diff --git a/global.json b/global.json
index ef86f96c32d9..4fbc3880c825 100644
--- a/global.json
+++ b/global.json
@@ -27,7 +27,7 @@
     "jdk": "11.0.24"
   },
   "msbuild-sdks": {
-    "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.24562.15",
-    "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.24562.15"
+    "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.24564.1",
+    "Microsoft.DotNet.Helix.Sdk": "10.0.0-beta.24564.1"
   }
 }