diff --git a/Arcade.sln b/Arcade.sln
index aea5e64ee1a..7ff297d2654 100644
--- a/Arcade.sln
+++ b/Arcade.sln
@@ -26,6 +26,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.GitSync",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Arcade.Sdk", "src\Microsoft.DotNet.Arcade.Sdk\Microsoft.DotNet.Arcade.Sdk.csproj", "{747A5C75-6069-4C45-8049-AEAA1D864105}"
EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.DotNet.Sdk.IL", "src\Microsoft.DotNet.Sdk.IL\Microsoft.DotNet.Sdk.IL.csproj", "{8C198813-9420-45A0-84A2-ABA4EA517794}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -144,6 +146,18 @@ Global
{747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x64.Build.0 = Release|Any CPU
{747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x86.ActiveCfg = Release|Any CPU
{747A5C75-6069-4C45-8049-AEAA1D864105}.Release|x86.Build.0 = Release|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Debug|x64.Build.0 = Debug|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Debug|x86.Build.0 = Debug|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Release|x64.ActiveCfg = Release|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Release|x64.Build.0 = Release|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Release|x86.ActiveCfg = Release|Any CPU
+ {8C198813-9420-45A0-84A2-ABA4EA517794}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -157,6 +171,7 @@ Global
{91FCE4C5-E83B-4C81-B0ED-3EAE417CBBE0} = {A564AF6E-6E4E-44EA-B2D7-C909C6687763}
{FE2D1224-2C69-48E2-AEE6-F524AEACF567} = {730AF68A-22FD-4372-9341-5F67D7701DA7}
{747A5C75-6069-4C45-8049-AEAA1D864105} = {730AF68A-22FD-4372-9341-5F67D7701DA7}
+ {8C198813-9420-45A0-84A2-ABA4EA517794} = {730AF68A-22FD-4372-9341-5F67D7701DA7}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {06E6CFF5-C54E-4623-9587-71A9E3F041D9}
diff --git a/src/Microsoft.DotNet.Sdk.IL/Microsoft.DotNet.Sdk.IL.csproj b/src/Microsoft.DotNet.Sdk.IL/Microsoft.DotNet.Sdk.IL.csproj
new file mode 100644
index 00000000000..d5658cc1731
--- /dev/null
+++ b/src/Microsoft.DotNet.Sdk.IL/Microsoft.DotNet.Sdk.IL.csproj
@@ -0,0 +1,22 @@
+
+
+
+
+ netstandard1.0
+ false
+ true
+ This package provides support for building IL projects.
+ true
+ false
+ false
+ false
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.DotNet.Sdk.IL/build/Microsoft.NET.Sdk.IL.props b/src/Microsoft.DotNet.Sdk.IL/build/Microsoft.NET.Sdk.IL.props
new file mode 100644
index 00000000000..7750f933051
--- /dev/null
+++ b/src/Microsoft.DotNet.Sdk.IL/build/Microsoft.NET.Sdk.IL.props
@@ -0,0 +1,19 @@
+
+
+
+
+
+ $(MSBuildThisFileFullPath);$(MSBuildAllProjects)
+
+
+
diff --git a/src/Microsoft.DotNet.Sdk.IL/build/Microsoft.NET.Sdk.IL.targets b/src/Microsoft.DotNet.Sdk.IL/build/Microsoft.NET.Sdk.IL.targets
new file mode 100644
index 00000000000..36c8ee9d077
--- /dev/null
+++ b/src/Microsoft.DotNet.Sdk.IL/build/Microsoft.NET.Sdk.IL.targets
@@ -0,0 +1,94 @@
+
+
+
+
+
+ $(MSBuildThisFileFullPath);$(MSBuildAllProjects)
+ .il
+ IL
+ Managed
+
+
+
+ <_OSPlatform Condition="$([MSBuild]::IsOSPlatform('windows'))">win
+ <_OSPlatform Condition="$([MSBuild]::IsOSPlatform('linux'))">linux
+ <_OSPlatform Condition="$([MSBuild]::IsOSPlatform('osx'))">osx
+ <_OSArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture)
+
+ $(_OSPlatform)-$(_OSArchitecture.ToLower())
+ 2.0.8
+ runtime.$(MicrosoftNetCoreIlasmPackageRuntimeId).microsoft.netcore.ilasm
+ runtime.$(MicrosoftNetCoreIlasmPackageRuntimeId).microsoft.netcore.runtime.coreclr
+
+ $([System.IO.Path]::Combine($([System.IO.Path]::GetTempPath()), $([System.IO.Path]::GetRandomFileName())))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <_IlasmSourceFiles Include="$(NuGetPackageRoot)\$(MicrosoftNetCoreIlasmPackageName)\$(MicrosoftNetCoreIlasmPackageVersion)\runtimes\$(MicrosoftNetCoreIlasmPackageRuntimeId)\native\**\*" />
+ <_IlasmSourceFiles Include="$(NuGetPackageRoot)\$(MicrosoftNetCoreRuntimeCoreClrPackageName)\$(MicrosoftNetCoreIlasmPackageVersion)\runtimes\$(MicrosoftNetCoreIlasmPackageRuntimeId)\native\**\*" />
+
+
+
+ <_IlasmDir>$(ToolsDir)\ilasm
+
+ <_OutputTypeArgument Condition="'$(OutputType)' == 'Library'">-DLL
+ <_OutputTypeArgument Condition="'$(OutputType)' == 'Exe'">-EXE
+
+ <_KeyFileArgument Condition="'$(KeyOriginatorFile)' != ''">-KEY=$(KeyOriginatorFile)
+
+ <_IlasmSwitches>-QUIET -NOLOGO
+ <_IlasmSwitches Condition="'$(FoldIdenticalMethods)' == 'True'">$(_IlasmSwitches) -FOLD
+ <_IlasmSwitches Condition="'$(SizeOfStackReserve)' != ''">$(_IlasmSwitches) -STACK=$(SizeOfStackReserve)
+ <_IlasmSwitches Condition="'$(DebugType)' == 'Full'">$(_IlasmSwitches) -DEBUG
+ <_IlasmSwitches Condition="'$(DebugType)' == 'Impl'">$(_IlasmSwitches) -DEBUG=IMPL
+ <_IlasmSwitches Condition="'$(DebugType)' == 'PdbOnly'">$(_IlasmSwitches) -DEBUG=OPT
+ <_IlasmSwitches Condition="'$(Optimize)' == 'True'">$(_IlasmSwitches) -OPTIMIZE
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.DotNet.Sdk.IL/sdk/Sdk.props b/src/Microsoft.DotNet.Sdk.IL/sdk/Sdk.props
new file mode 100644
index 00000000000..9b14e9f4fde
--- /dev/null
+++ b/src/Microsoft.DotNet.Sdk.IL/sdk/Sdk.props
@@ -0,0 +1,22 @@
+
+
+
+
+
+ $(MSBuildThisFileFullPath);$(MSBuildAllProjects)
+
+
+
+
+
+
diff --git a/src/Microsoft.DotNet.Sdk.IL/sdk/Sdk.targets b/src/Microsoft.DotNet.Sdk.IL/sdk/Sdk.targets
new file mode 100644
index 00000000000..6cd0ac27137
--- /dev/null
+++ b/src/Microsoft.DotNet.Sdk.IL/sdk/Sdk.targets
@@ -0,0 +1,22 @@
+
+
+
+
+
+ $(MSBuildThisFileFullPath);$(MSBuildAllProjects)
+ $(MSBuildThisFileDirectory)..\build\Microsoft.NET.Sdk.IL.targets
+
+
+
+
+