diff --git a/eng/illink.targets b/eng/illink.targets
index af7c435d3d966b..082d7e85c589ac 100644
--- a/eng/illink.targets
+++ b/eng/illink.targets
@@ -1,7 +1,7 @@
- _EmbedILLinkSubstitutionsXmls;
+ _EmbedILLinkXmls;
$(PrepareResourcesDependsOn)
@@ -38,6 +38,8 @@
$(MSBuildProjectDirectory)/ILLinkTrim.xml
$(MSBuildProjectDirectory)/ILLinkTrim_LibraryBuild.xml
+ $(IntermediateOutputPath)ILLink.Descriptors.xml
+
$(MSBuildProjectDirectory)/ILLink.Substitutions.xml
$(IntermediateOutputPath)ILLink.Substitutions.xml
@@ -45,12 +47,6 @@
true
-
-
- $(AssemblyName).xml
-
-
-
@@ -75,9 +71,14 @@
-
+
+
+
+
+ $(AssemblyName).xml
+
+
@@ -88,6 +89,22 @@
+
+
+ $(ILLinkDescriptorsXmlIntermediatePath)
+
+
+
+
+
+
+
+
+
-
+
diff --git a/src/coreclr/src/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets b/src/coreclr/src/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets
index a40473eb98ac31..18a6d21e57dcb7 100644
--- a/src/coreclr/src/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets
+++ b/src/coreclr/src/System.Private.CoreLib/CreateRuntimeRootILLinkDescriptorFile.targets
@@ -10,12 +10,18 @@
<_MscorlibFilePath Condition=" '$(_MscorlibFilePath)' == '' ">$(MSBuildThisFileDirectory)..\vm\mscorlib.h
<_CortypeFilePath Condition=" '$(_CortypeFilePath)' == '' ">$(MSBuildThisFileDirectory)..\inc\cortypeinfo.h
<_RexcepFilePath Condition=" '$(_RexcepFilePath)' == '' ">$(MSBuildThisFileDirectory)..\vm\rexcep.h
- <_ILLinkTrimXmlFilePath Condition=" '$(_ILLinkTrimXmlFilePath)' == '' ">$(MSBuildThisFileDirectory)ILLinkTrim.xml
+ <_ILLinkDescriptorsIntermediatePath>$(IntermediateOutputPath)ILLink.Descriptors.Combined.xml
<_ILLinkTasksToolsDir>$(PkgMicrosoft_NET_ILLink_Tasks)/tools
<_ILLinkTasksDir>$(_ILLinkTasksToolsDir)/$(NetFrameworkCurrent)/
<_ILLinkTasksDir Condition="'$(MSBuildRuntimeType)' == 'Core'">$(_ILLinkTasksToolsDir)/netcoreapp3.0/
+ <_ILLinkTasksPath>$(_ILLinkTasksDir)ILLink.Tasks.dll
+
+ <_ILLinkDescriptorsFilePaths Include="$(MSBuildThisFileDirectory)ILLinkTrim.xml" />
+ <_ILLinkDescriptorsFilePaths Include="$(CoreLibSharedDir)ILLink\ILLink.Descriptors.Shared.xml" />
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/coreclr/src/System.Private.CoreLib/ILLinkTrim.xml b/src/coreclr/src/System.Private.CoreLib/ILLinkTrim.xml
index b46e8a758f897f..e5a4eeb311e5cc 100644
--- a/src/coreclr/src/System.Private.CoreLib/ILLinkTrim.xml
+++ b/src/coreclr/src/System.Private.CoreLib/ILLinkTrim.xml
@@ -1,68 +1,9 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.Shared.xml b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.Shared.xml
new file mode 100644
index 00000000000000..87750a91e04a0b
--- /dev/null
+++ b/src/libraries/System.Private.CoreLib/src/ILLink/ILLink.Descriptors.Shared.xml
@@ -0,0 +1,63 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
index 1689252abbe2de..98be3a9392d698 100644
--- a/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
+++ b/src/mono/netcore/System.Private.CoreLib/System.Private.CoreLib.csproj
@@ -1,4 +1,4 @@
-
+
@@ -144,10 +144,12 @@
true
$(MSBuildThisFileDirectory)src\ILLink\
- $(ILLinkDirectory)System.Private.CoreLib.xml
+
+
+
diff --git a/src/mono/netcore/System.Private.CoreLib/src/ILLink/System.Private.CoreLib.xml b/src/mono/netcore/System.Private.CoreLib/src/ILLink/System.Private.CoreLib.xml
index fd065ecf63c245..3c12c67f5d827e 100644
--- a/src/mono/netcore/System.Private.CoreLib/src/ILLink/System.Private.CoreLib.xml
+++ b/src/mono/netcore/System.Private.CoreLib/src/ILLink/System.Private.CoreLib.xml
@@ -753,71 +753,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-