diff --git a/eng/Versions.props b/eng/Versions.props
index 4a749666efcc6e..1e6381dfafe1a1 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -8,6 +8,7 @@
0
preview
2
+ $(PreReleaseVersionIteration)-runtime
$(MajorVersion).$(MinorVersion).0.0
diff --git a/src/libraries/Directory.Build.props b/src/libraries/Directory.Build.props
index 7464cbe3360da4..9817cb63337041 100644
--- a/src/libraries/Directory.Build.props
+++ b/src/libraries/Directory.Build.props
@@ -323,6 +323,9 @@
$(ArtifactsBinDir)pkg\$(NetCoreAppCurrent)\ref
$(ArtifactsBinDir)pkg\$(NetCoreAppCurrent)\lib
+
+ $(ArtifactsBinDir)pkg\aspnetcoreapp\ref
+ $(ArtifactsBinDir)pkg\aspnetcoreapp\lib
$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'testhost', '$(BuildConfiguration)'))
diff --git a/src/libraries/Directory.Build.targets b/src/libraries/Directory.Build.targets
index a977d74811354d..d856ddee960978 100644
--- a/src/libraries/Directory.Build.targets
+++ b/src/libraries/Directory.Build.targets
@@ -66,6 +66,10 @@
ILLinkTrimAssembly=true
+
+ $(ASPNETCoreAppPackageRuntimePath)
+ $(ASPNETCoreAppPackageRefPath)
+
diff --git a/src/libraries/Microsoft.Extensions.Primitives/Directory.Build.props b/src/libraries/Microsoft.Extensions.Primitives/Directory.Build.props
new file mode 100644
index 00000000000000..e6b08fc74ca605
--- /dev/null
+++ b/src/libraries/Microsoft.Extensions.Primitives/Directory.Build.props
@@ -0,0 +1,7 @@
+
+
+
+ MicrosoftAspNetCore
+ true
+
+
\ No newline at end of file
diff --git a/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln b/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln
new file mode 100644
index 00000000000000..7fab925f1a9f88
--- /dev/null
+++ b/src/libraries/Microsoft.Extensions.Primitives/Microsoft.Extensions.Primitives.sln
@@ -0,0 +1,48 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.29521.150
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{D69C4529-128C-4A51-AD5A-659872A4F405}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "src\Microsoft.Extensions.Primitives.csproj", "{31785605-3555-4D71-8B24-59DC43F7439A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{0EB2C914-0873-4AF8-9262-75B1405C842A}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ref", "ref", "{33BE7927-9C98-425D-97F5-D68510163F6C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives", "ref\Microsoft.Extensions.Primitives.csproj", "{7A3952AC-BA1B-4A00-B45B-92DE4D3B36E5}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Extensions.Primitives.Tests", "tests\Microsoft.Extensions.Primitives.Tests.csproj", "{E5CBC6DD-9C09-483A-A27A-F1F1FA2DFBAA}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {31785605-3555-4D71-8B24-59DC43F7439A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {31785605-3555-4D71-8B24-59DC43F7439A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {31785605-3555-4D71-8B24-59DC43F7439A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {31785605-3555-4D71-8B24-59DC43F7439A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {7A3952AC-BA1B-4A00-B45B-92DE4D3B36E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {7A3952AC-BA1B-4A00-B45B-92DE4D3B36E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {7A3952AC-BA1B-4A00-B45B-92DE4D3B36E5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {7A3952AC-BA1B-4A00-B45B-92DE4D3B36E5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E5CBC6DD-9C09-483A-A27A-F1F1FA2DFBAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E5CBC6DD-9C09-483A-A27A-F1F1FA2DFBAA}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E5CBC6DD-9C09-483A-A27A-F1F1FA2DFBAA}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E5CBC6DD-9C09-483A-A27A-F1F1FA2DFBAA}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {31785605-3555-4D71-8B24-59DC43F7439A} = {D69C4529-128C-4A51-AD5A-659872A4F405}
+ {7A3952AC-BA1B-4A00-B45B-92DE4D3B36E5} = {33BE7927-9C98-425D-97F5-D68510163F6C}
+ {E5CBC6DD-9C09-483A-A27A-F1F1FA2DFBAA} = {0EB2C914-0873-4AF8-9262-75B1405C842A}
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {EC9E15A7-A8F7-486B-B7EA-59341203A4D3}
+ EndGlobalSection
+EndGlobal
diff --git a/src/libraries/Microsoft.Extensions.Primitives/pkg/Microsoft.Extensions.Primitives.pkgproj b/src/libraries/Microsoft.Extensions.Primitives/pkg/Microsoft.Extensions.Primitives.pkgproj
new file mode 100644
index 00000000000000..07273ae288cef3
--- /dev/null
+++ b/src/libraries/Microsoft.Extensions.Primitives/pkg/Microsoft.Extensions.Primitives.pkgproj
@@ -0,0 +1,9 @@
+
+
+
+
+ net461;netcoreapp2.0;uap10.0.16299;$(AllXamarinFrameworks)
+
+
+
+
\ No newline at end of file
diff --git a/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs
new file mode 100644
index 00000000000000..37f8f8a869baf7
--- /dev/null
+++ b/src/libraries/Microsoft.Extensions.Primitives/ref/Microsoft.Extensions.Primitives.cs
@@ -0,0 +1,198 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+// ------------------------------------------------------------------------------
+// Changes to this file must follow the https://aka.ms/api-review process.
+// ------------------------------------------------------------------------------
+
+namespace Microsoft.Extensions.Primitives
+{
+ public partial class CancellationChangeToken : Microsoft.Extensions.Primitives.IChangeToken
+ {
+ public CancellationChangeToken(System.Threading.CancellationToken cancellationToken) { }
+ public bool ActiveChangeCallbacks { get { throw null; } }
+ public bool HasChanged { get { throw null; } }
+ public System.IDisposable RegisterChangeCallback(System.Action