diff --git a/.azure/pipelines/ci.yml b/.azure/pipelines/ci.yml
index 755ffe182e035d5c5ba431c3ba69e4d69747ad91..900b033f831660ed46198c0423f1a1931446cafa 100644
--- a/.azure/pipelines/ci.yml
+++ b/.azure/pipelines/ci.yml
@@ -17,6 +17,10 @@ pr:
     include:
     - '*'
 
+variables:
+- name: DOTNET_SKIP_FIRST_TIME_EXPERIENCE
+  value: true
+
 jobs:
 - template: jobs/default-build.yml
   parameters:
diff --git a/eng/PublishSymbols.proj b/eng/PublishSymbols.proj
new file mode 100644
index 0000000000000000000000000000000000000000..dd2c968566f2003a61dcf63e264daa5ebb584ca3
--- /dev/null
+++ b/eng/PublishSymbols.proj
@@ -0,0 +1,62 @@
+<Project Sdk="Microsoft.NET.Sdk" DefaultTargets="RunPublishSymbols">
+  <PropertyGroup>
+    <!-- TFM doesn't matter. These settings are required to make NuGet happy so we can restore required MSBuild packages. -->
+    <TargetFramework>netcoreapp3.0</TargetFramework>
+    <DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
+    <ManifestsPath>artifacts\manifests\</ManifestsPath>
+    <DisablePackageReferenceRestrictions>true</DisablePackageReferenceRestrictions>
+
+    <!-- Expire symbols after 10 years (or so) by default. -->
+    <DotNetSymbolExpirationInDays Condition="'$(DotNetSymbolExpirationInDays)' == ''">3650</DotNetSymbolExpirationInDays>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Microsoft.SymbolUploader.Build.Task" Version="$(MicrosoftSymbolUploaderBuildTaskPackageVersion)" />
+  </ItemGroup>
+
+  <!--
+    Initially copied from
+    https://github.com/dotnet/core-setup/blob/19390ee14c2824c39db393aff75a95788ececebf/publish/publish.proj#L242-L286
+  -->
+  <Target Name="RunPublishSymbols">
+    <ItemGroup>
+      <SymbolServerConfig
+        Include="MSDL (public symbols server)"
+        Url="https://microsoftpublicsymbols.artifacts.visualstudio.com/DefaultCollection"
+        Pat="$(MicrosoftSymbolServerPAT)" />
+
+      <SymbolServerConfig
+        Include="SymWeb (internal symbols server)"
+        Url="https://microsoft.artifacts.visualstudio.com/DefaultCollection"
+        Pat="$(SymwebSymbolServerPAT)" />
+    </ItemGroup>
+
+    <Error
+      Condition="'%(SymbolServerConfig.Pat)' == ''"
+      Text="Missing symbol server publish PAT for '%(SymbolServerConfig.Identity)'" />
+
+    <!-- Could also set SymbolDryRun, SymbolExpirationInDays or SymbolVerboseLogging. -->
+    <ItemGroup>
+      <SymbolServerPublishProject
+        Include="$(MSBuildProjectFullPath)"
+        AdditionalProperties="
+          SymbolServerDescription=%(SymbolServerConfig.Identity);
+          SymbolServerPath=%(SymbolServerConfig.Url);
+          SymbolServerPAT=%(SymbolServerConfig.Pat)" />
+    </ItemGroup>
+
+    <!-- Note: Can't run in parallel. Symbol publish opens the zips exclusively. -->
+    <MSBuild
+      Projects="@(SymbolServerPublishProject)"
+      Targets="SetupPublishSymbols;PublishSymbols"
+      Properties="SymbolDirectory=$(SymbolDirectory)" />
+  </Target>
+
+  <Target Name="SetupPublishSymbols">
+    <ItemGroup>
+      <SymbolPackagesToPublish Include="$(SymbolDirectory)/**/*.symbols.nupkg" />
+    </ItemGroup>
+
+    <Message Importance="High" Text="Publishing symbol packages to '$(SymbolServerDescription)':%0A  @(SymbolPackagesToPublish, '%0A  ')"/>
+  </Target>
+</Project>
diff --git a/eng/Versions.props b/eng/Versions.props
index 78e4d044b893974621f5fe016379b983aecced27..7fdd2d0d75b1fb3419990f4f00ae49bf702a9888 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -140,6 +140,7 @@
     <MicrosoftNETTestSdkPackageVersion>15.9.0</MicrosoftNETTestSdkPackageVersion>
     <MicrosoftSourceLinkGitHubPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkGitHubPackageVersion>
     <MicrosoftSourceLinkVstsGitPackageVersion>1.0.0-beta2-18618-05</MicrosoftSourceLinkVstsGitPackageVersion>
+    <MicrosoftSymbolUploaderBuildTaskPackageVersion>1.0.0-beta-64023-03</MicrosoftSymbolUploaderBuildTaskPackageVersion>
     <!-- Stable dotnet/corefx packages no longer updated for .NET Core 3 -->
     <SystemBuffersPackageVersion>4.5.0</SystemBuffersPackageVersion>
     <SystemCodeDomPackageVersion>4.4.0</SystemCodeDomPackageVersion>