diff --git a/eng/ManualVersions.props b/eng/ManualVersions.props
index a5b100458..5da7e39ab 100644
--- a/eng/ManualVersions.props
+++ b/eng/ManualVersions.props
@@ -9,8 +9,8 @@
Basically: In this file, choose the highest version when resolving merge conflicts.
-->
- 10.0.17763.10
- 10.0.18362.10
- 10.0.19041.10
+ 10.0.17763.12
+ 10.0.18362.12
+ 10.0.19041.12
diff --git a/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs b/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs
new file mode 100644
index 000000000..028f1aa32
--- /dev/null
+++ b/src/core-sdk-tasks/GenerateSdkRuntimeIdentifierChain.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+using NuGet.RuntimeModel;
+
+namespace Microsoft.DotNet.Cli.Build
+{
+ public class GenerateSdkRuntimeIdentifierChain : Task
+ {
+ [Required]
+ public string RuntimeIdentifier { get; set; }
+
+ [Required]
+ public string RuntimeIdentifierGraphPath { get; set; }
+
+ [Required]
+ public string RuntimeIdentifierChainOutputPath { get; set; }
+
+ public override bool Execute()
+ {
+ var runtimeIdentifierGraph = JsonRuntimeFormat.ReadRuntimeGraph(RuntimeIdentifierGraphPath);
+
+ var chainContents = string.Join("\n", runtimeIdentifierGraph.ExpandRuntime(RuntimeIdentifier));
+ File.WriteAllText(RuntimeIdentifierChainOutputPath, chainContents);
+
+ return true;
+ }
+ }
+}
diff --git a/src/core-sdk-tasks/core-sdk-tasks.csproj b/src/core-sdk-tasks/core-sdk-tasks.csproj
index 20ce4702e..00420b6ba 100644
--- a/src/core-sdk-tasks/core-sdk-tasks.csproj
+++ b/src/core-sdk-tasks/core-sdk-tasks.csproj
@@ -11,7 +11,8 @@
-
+
+
diff --git a/src/redist/targets/BuildCoreSdkTasks.targets b/src/redist/targets/BuildCoreSdkTasks.targets
index 2d547dda5..a3ccc3880 100644
--- a/src/redist/targets/BuildCoreSdkTasks.targets
+++ b/src/redist/targets/BuildCoreSdkTasks.targets
@@ -38,5 +38,6 @@
+
diff --git a/src/redist/targets/GenerateBundledVersions.targets b/src/redist/targets/GenerateBundledVersions.targets
index a9f8a9b4c..fe180e61f 100644
--- a/src/redist/targets/GenerateBundledVersions.targets
+++ b/src/redist/targets/GenerateBundledVersions.targets
@@ -180,6 +180,11 @@
DefaultVersion="2.2.0"
LatestVersion="2.2.8"/>
+
+
+ $(ProductMonikerRid)
+
+
@@ -209,6 +214,7 @@ Copyright (c) .NET Foundation. All rights reserved.
%24(MSBuildThisFileDirectory)RuntimeIdentifierGraph.json
$(Version)
$(ProductMonikerRid)
+ $(PortableProductMonikerRid)
<_NETCoreSdkIsPreview>$(_NETCoreSdkBeingBuiltIsPreview)
@@ -642,7 +648,12 @@ Copyright (c) .NET Foundation. All rights reserved.
+ SkipUnchangedFiles="true"/>
+
+