diff --git a/.gitignore b/.gitignore
index 9aed881a4b..a68780e24f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -19,6 +19,7 @@ node_modules
.build
.nuget
.r
+.w
.deps
global.json
korebuild-lock.txt
diff --git a/NuGet.Config b/NuGet.Config
index cbeb8fa20d..c4bc056c4d 100644
--- a/NuGet.Config
+++ b/NuGet.Config
@@ -3,6 +3,7 @@
+
-
+
\ No newline at end of file
diff --git a/build/Key.snk b/build/Key.snk
new file mode 100644
index 0000000000..e10e4889c1
Binary files /dev/null and b/build/Key.snk differ
diff --git a/build/RuntimeStore.targets b/build/RuntimeStore.targets
new file mode 100644
index 0000000000..599882ca5e
--- /dev/null
+++ b/build/RuntimeStore.targets
@@ -0,0 +1,191 @@
+
+
+
+
+ <_DependencyBuildDirectory>$(RepositoryRoot).deps\build\
+ <_BuildScriptsDirectory>$(MSBuildThisFileDirectory)tools\scripts\
+ <_WorkRoot>$(RepositoryRoot).w\
+ <_RuntimeStoreWorkDirectory>$(_WorkRoot).rw\
+ <_RuntimeStoreOutputDirectory>$(_WorkRoot).ro\
+ <_TemplatesDirectory>$(MSBuildThisFileDirectory)tools\templates\
+ <_SrcDirectory>$(RepositoryRoot)src\
+ <_AllMetapackageDirectory>$(_SrcDirectory)Microsoft.AspNetCore.All\
+ <_ExistingManifestsDirectory>$(_AllMetapackageDirectory)build\
+ <_ArtifactsZipDirectory>$(ArtifactsDir)zip\
+ <_StoreZipDirectory>$(_ArtifactsZipDirectory)rs\
+ <_SymbolsZipDirectory>$(_ArtifactsZipDirectory)symbols\
+ <_DepsOutputDirectory>$(ArtifactsDir)deps\
+
+
+
+
+
+
+
+
+ $(_WorkRoot)Microsoft.AspNetCore.All\
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ win7-$(RuntimeStoreArch)
+ linux-$(RuntimeStoreArch)
+ osx-$(RuntimeStoreArch)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(ArtifactsDir)aspnetcore-store-$(VersionPrefix)-$(VersionSuffix)-$(RuntimeStoreRID).zip
+ $(ArtifactsDir)aspnetcore-symbols-$(VersionPrefix)-$(VersionSuffix)-$(RuntimeStoreRID).zip
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ aspnetcore-store-$(VersionPrefix)-$(VersionSuffix)-common.xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/artifacts.props b/build/artifacts.props
index 4ff91c3429..5aee8bffa3 100644
--- a/build/artifacts.props
+++ b/build/artifacts.props
@@ -9,7 +9,7 @@
-
+
@@ -23,7 +23,7 @@
-
+
@@ -37,7 +37,7 @@
-
+
@@ -46,7 +46,7 @@
-
+
diff --git a/build/common.props b/build/common.props
new file mode 100644
index 0000000000..f7b678dcf2
--- /dev/null
+++ b/build/common.props
@@ -0,0 +1,20 @@
+
+
+
+
+
+ Microsoft ASP.NET Core
+ https://github.com/aspnet/MetaPackages
+ git
+ false
+ ..\..\build\Key.snk
+ true
+ true
+ true
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/build/dependencies.props b/build/dependencies.props
index 63a64327c9..f0452cf9db 100644
--- a/build/dependencies.props
+++ b/build/dependencies.props
@@ -231,4 +231,8 @@
KRB2004
+
+
+ 2.0.1-rtm-15400
+
diff --git a/build/repo.props b/build/repo.props
index 63a8d665d0..a98645c000 100644
--- a/build/repo.props
+++ b/build/repo.props
@@ -5,5 +5,4 @@
-
diff --git a/build/repo.targets b/build/repo.targets
index fde013f088..e7e6c89de6 100644
--- a/build/repo.targets
+++ b/build/repo.targets
@@ -1,5 +1,6 @@
+
<_CloneRepositoryRoot>$(RepositoryRoot).r\
@@ -302,5 +303,4 @@
<_CloneUrl>
-
diff --git a/build/tasks/AddMetapackageReferences.cs b/build/tasks/AddMetapackageReferences.cs
new file mode 100644
index 0000000000..3db68880cc
--- /dev/null
+++ b/build/tasks/AddMetapackageReferences.cs
@@ -0,0 +1,64 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Linq;
+using System.Xml;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+using RepoTasks.Utilities;
+
+namespace RepoTasks
+{
+ public class AddMetapackageReferences : Task
+ {
+ [Required]
+ public string ReferencePackagePath { get; set; }
+
+ [Required]
+ public ITaskItem[] BuildArtifacts { get; set; }
+
+ [Required]
+ public ITaskItem[] PackageArtifacts { get; set; }
+
+ public override bool Execute()
+ {
+ // Parse input
+ var metapackageArtifacts = PackageArtifacts.Where(p => p.GetMetadata("Metapackage") != "false");
+ var buildArtifacts = BuildArtifacts.Select(ArtifactInfo.Parse)
+ .OfType()
+ .Where(p => !p.IsSymbolsArtifact);
+
+ var xmlDoc = new XmlDocument();
+ xmlDoc.Load(ReferencePackagePath);
+
+ // Project
+ var projectElement = xmlDoc.FirstChild;
+
+ // Items
+ var itemGroupElement = xmlDoc.CreateElement("ItemGroup");
+ Log.LogMessage(MessageImportance.Normal, $"Runtime store will include the following packages");
+ foreach (var package in metapackageArtifacts)
+ {
+ var packageName = package.GetMetadata("Identity");
+ var packageVersion = buildArtifacts
+ .Single(p => string.Equals(p.PackageInfo.Id, packageName, StringComparison.OrdinalIgnoreCase))
+ .PackageInfo.Version.ToString();
+ Log.LogMessage(MessageImportance.Normal, $" - Package: {packageName} Version: {packageVersion}");
+
+ var packageReferenceElement = xmlDoc.CreateElement("PackageReference");
+ packageReferenceElement.SetAttribute("Include", packageName);
+ packageReferenceElement.SetAttribute("Version", packageVersion);
+
+ itemGroupElement.AppendChild(packageReferenceElement);
+ }
+ projectElement.AppendChild(itemGroupElement);
+
+ // Save updated file
+ xmlDoc.AppendChild(projectElement);
+ xmlDoc.Save(ReferencePackagePath);
+
+ return true;
+ }
+ }
+}
diff --git a/build/tasks/ComposeNewStore.cs b/build/tasks/ComposeNewStore.cs
new file mode 100644
index 0000000000..1694f5ef25
--- /dev/null
+++ b/build/tasks/ComposeNewStore.cs
@@ -0,0 +1,131 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Collections.Generic;
+using System.IO;
+using System.Xml;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace RepoTasks
+{
+ public class ComposeNewStore : Task
+ {
+ [Required]
+ public ITaskItem[] ExistingManifests { get; set; }
+
+ [Required]
+ public ITaskItem[] NewManifests { get; set; }
+
+ [Required]
+ public ITaskItem[] RuntimeStoreFiles { get; set; }
+
+ [Required]
+ public ITaskItem[] RuntimeStoreSymbolFiles { get; set; }
+
+ [Required]
+ public string ManifestDestination { get; set; }
+
+ [Required]
+ public string StoreDestination { get; set; }
+
+ [Required]
+ public string SymbolsDestination { get; set; }
+
+ public override bool Execute()
+ {
+ var existingFiles = new Dictionary>();
+ var newRuntimeStoreFiles = new List();
+ var newRuntimeStoreSymbolFiles = new List();
+
+ // Construct database of existing assets
+ foreach (var manifest in ExistingManifests)
+ {
+ var xmlDoc = new XmlDocument();
+ xmlDoc.Load(manifest.GetMetadata("FullPath"));
+ var storeArtifacts = xmlDoc.SelectSingleNode("/StoreArtifacts");
+
+ foreach (XmlNode artifact in storeArtifacts.ChildNodes)
+ {
+ if (existingFiles.TryGetValue(artifact.Attributes["Id"].Value, out var versions))
+ {
+ versions.Add(artifact.Attributes["Version"].Value);
+ }
+ else
+ {
+ existingFiles[artifact.Attributes["Id"].Value] = new HashSet{ artifact.Attributes["Version"].Value };
+ }
+ }
+ }
+
+ // Insert new runtime store files
+ foreach (var storeFile in RuntimeStoreFiles)
+ {
+ // format: {bitness}}/{tfm}}/{id}/{version}}/...
+ var recursiveDir = storeFile.GetMetadata("RecursiveDir");
+ var components = recursiveDir.Split(Path.DirectorySeparatorChar);
+ var id = components[2];
+ var version = components[3];
+
+ if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version))
+ {
+ var destinationDir = Path.Combine(StoreDestination, recursiveDir);
+ if (!Directory.Exists(Path.Combine(StoreDestination, recursiveDir)))
+ {
+ Directory.CreateDirectory(destinationDir);
+ }
+
+ File.Copy(storeFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{storeFile.GetMetadata("Filename")}{storeFile.GetMetadata("Extension")}"), overwrite: true);
+ }
+ }
+
+ // Insert new runtime store files
+ foreach (var symbolFile in RuntimeStoreSymbolFiles)
+ {
+ // format: {bitness}}/{tfm}}/{id}/{version}}/...
+ var recursiveDir = symbolFile.GetMetadata("RecursiveDir");
+ var components = recursiveDir.Split(Path.DirectorySeparatorChar);
+ var id = components[2];
+ var version = components[3];
+
+ if (!existingFiles.TryGetValue(id, out var versions) || !versions.Contains(version))
+ {
+ var destinationDir = Path.Combine(StoreDestination, recursiveDir);
+ if (!Directory.Exists(Path.Combine(StoreDestination, recursiveDir)))
+ {
+ Directory.CreateDirectory(destinationDir);
+ }
+
+ File.Copy(symbolFile.GetMetadata("FullPath"), Path.Combine(destinationDir, $"{symbolFile.GetMetadata("Filename")}{symbolFile.GetMetadata("Extension")}"), overwrite: true);
+ }
+ }
+
+ // Purge existing packages from manifest
+ foreach (var newManifest in NewManifests)
+ {
+ var newManifestPath = newManifest.GetMetadata("FullPath");
+ var xmlDoc = new XmlDocument();
+ xmlDoc.Load(newManifestPath);
+ var storeArtifacts = xmlDoc.SelectSingleNode("/StoreArtifacts");
+ var artifactsToRemove = new List();
+
+ foreach (XmlNode artifact in storeArtifacts.ChildNodes)
+ {
+ if (existingFiles.TryGetValue(artifact.Attributes["Id"].Value, out var versions) && versions.Contains(artifact.Attributes["Version"].Value))
+ {
+ artifactsToRemove.Add(artifact);
+ }
+ }
+
+ foreach (var artifactToRemove in artifactsToRemove)
+ {
+ storeArtifacts.RemoveChild(artifactToRemove);
+ }
+
+ xmlDoc.Save(ManifestDestination);
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/build/tasks/ConsolidateManifests.cs b/build/tasks/ConsolidateManifests.cs
new file mode 100644
index 0000000000..12838855a6
--- /dev/null
+++ b/build/tasks/ConsolidateManifests.cs
@@ -0,0 +1,57 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Collections.Generic;
+using System.Xml;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace RepoTasks
+{
+ // Takes multiple runtime store manifests and create a consolidated manifest containing all unique entries.
+ public class ConsolidateManifests : Task
+ {
+ [Required]
+ public ITaskItem[] Manifests { get; set; }
+
+ [Required]
+ public string ManifestDestination { get; set; }
+
+ public override bool Execute()
+ {
+ var artifacts = new HashSet>();
+
+ // Construct database of all artifacts
+ foreach (var manifest in Manifests)
+ {
+ var xmlDoc = new XmlDocument();
+ xmlDoc.Load(manifest.GetMetadata("FullPath"));
+ var storeArtifacts = xmlDoc.SelectSingleNode("/StoreArtifacts");
+
+ foreach (XmlNode artifact in storeArtifacts.ChildNodes)
+ {
+ artifacts.Add(new Tuple(artifact.Attributes["Id"].Value, artifact.Attributes["Version"].Value));
+ }
+ }
+
+
+ var consolidatedXmlDoc = new XmlDocument();
+ var packagesElement = consolidatedXmlDoc.CreateElement("StoreArtifacts");
+
+ foreach (var artifact in artifacts)
+ {
+ var packageElement = consolidatedXmlDoc.CreateElement("Package");
+ packageElement.SetAttribute("Id", artifact.Item1);
+ packageElement.SetAttribute("Version", artifact.Item2);
+
+ packagesElement.AppendChild(packageElement);
+ }
+
+ consolidatedXmlDoc.AppendChild(packagesElement);
+ consolidatedXmlDoc.Save(ManifestDestination);
+
+ return true;
+ }
+ }
+}
diff --git a/build/tasks/CreateCommonManifest.cs b/build/tasks/CreateCommonManifest.cs
new file mode 100644
index 0000000000..5a412fa8e9
--- /dev/null
+++ b/build/tasks/CreateCommonManifest.cs
@@ -0,0 +1,61 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System;
+using System.Linq;
+using System.Xml;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace RepoTasks
+{
+ ///
+ /// Creates a common manifest file used for trimming publish output given a list of packages and package definitions containing their versions.
+ ///
+ public class CreateCommonManifest : Task
+ {
+ ///
+ /// The path for the common manifest file to be created.
+ ///
+ ///
+ [Required]
+ public string DestinationFilePath { get; set; }
+
+ ///
+ /// The packages to include in the common manifest file.
+ ///
+ ///
+ [Required]
+ public ITaskItem[] Packages { get; set; }
+
+ ///
+ /// The package definitions used for resolving package versions.
+ ///
+ ///
+ [Required]
+ public ITaskItem[] PackageDefinitions { get; set; }
+
+ public override bool Execute()
+ {
+ var xmlDoc = new XmlDocument();
+ var packagesElement = xmlDoc.CreateElement("StoreArtifacts");
+
+ foreach (var package in Packages)
+ {
+ var packageName = package.ItemSpec;
+ var packageElement = xmlDoc.CreateElement("Package");
+ packageElement.SetAttribute("Id", packageName);
+ packageElement.SetAttribute("Version", PackageDefinitions
+ .Where(p => string.Equals(p.GetMetadata("Name"), packageName, StringComparison.OrdinalIgnoreCase))
+ .Select(p => p.GetMetadata("Version")).Single());
+
+ packagesElement.AppendChild(packageElement);
+ }
+
+ xmlDoc.AppendChild(packagesElement);
+ xmlDoc.Save(DestinationFilePath);
+
+ return true;
+ }
+ }
+}
diff --git a/build/tasks/RepoTasks.csproj b/build/tasks/RepoTasks.csproj
index 39574ccdb1..a52ecec4f4 100644
--- a/build/tasks/RepoTasks.csproj
+++ b/build/tasks/RepoTasks.csproj
@@ -7,6 +7,7 @@
+
diff --git a/build/tasks/RepoTasks.tasks b/build/tasks/RepoTasks.tasks
index 4990d23c33..5dda060bf5 100644
--- a/build/tasks/RepoTasks.tasks
+++ b/build/tasks/RepoTasks.tasks
@@ -10,4 +10,10 @@
+
+
+
+
+
+
diff --git a/build/tasks/ResolveHostingStartupPackages.cs b/build/tasks/ResolveHostingStartupPackages.cs
new file mode 100644
index 0000000000..0d5b0838f4
--- /dev/null
+++ b/build/tasks/ResolveHostingStartupPackages.cs
@@ -0,0 +1,30 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.Linq;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+
+namespace RepoTasks
+{
+ public class ResolveHostingStartupPackages : Task
+ {
+ [Required]
+ public ITaskItem[] BuildArtifacts { get; set; }
+
+ [Required]
+ public ITaskItem[] PackageArtifacts { get; set; }
+
+ [Output]
+ public ITaskItem[] HostingStartupArtifacts { get; set; }
+
+ public override bool Execute()
+ {
+ // Parse input
+ var hostingStartupArtifacts = PackageArtifacts.Where(p => p.GetMetadata("Metapackage") == "hostingstartup");
+ HostingStartupArtifacts = BuildArtifacts.Where(p => hostingStartupArtifacts.Any(h => h.GetMetadata("Identity") == p.GetMetadata("PackageId"))).ToArray();
+
+ return true;
+ }
+ }
+}
diff --git a/build/tasks/TrimDeps.cs b/build/tasks/TrimDeps.cs
new file mode 100644
index 0000000000..b63bdb35cc
--- /dev/null
+++ b/build/tasks/TrimDeps.cs
@@ -0,0 +1,60 @@
+// Copyright (c) .NET Foundation. All rights reserved.
+// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
+
+using System.IO;
+using System.Linq;
+using Microsoft.Build.Framework;
+using Microsoft.Build.Utilities;
+using Newtonsoft.Json;
+using Newtonsoft.Json.Linq;
+
+namespace RepoTasks
+{
+ public class TrimDeps : Task
+ {
+ [Required]
+ public ITaskItem[] DepsFiles { get; set; }
+
+ public override bool Execute()
+ {
+ foreach (var depsFile in DepsFiles)
+ {
+ ChangeEntryPointLibraryName(depsFile.GetMetadata("Identity"));
+ }
+
+ // Parse input
+ return true;
+ }
+
+
+ private void ChangeEntryPointLibraryName(string depsFile)
+ {
+ JToken deps;
+ using (var file = File.OpenText(depsFile))
+ using (JsonTextReader reader = new JsonTextReader(file))
+ {
+ deps = JObject.ReadFrom(reader);
+ }
+
+ foreach (JProperty target in deps["targets"])
+ {
+ var targetLibrary = target.Value.Children().FirstOrDefault();
+ if (targetLibrary == null)
+ {
+ continue;
+ }
+
+ targetLibrary.Remove();
+ }
+
+ var library = deps["libraries"].Children().First();
+ library.Remove();
+
+ using (var file = File.CreateText(depsFile))
+ using (var writer = new JsonTextWriter(file) { Formatting = Formatting.Indented })
+ {
+ deps.WriteTo(writer);
+ }
+ }
+ }
+}
diff --git a/build/tools/scripts/GetSharedFrameworkVersion.ps1 b/build/tools/scripts/GetSharedFrameworkVersion.ps1
new file mode 100644
index 0000000000..37772625fe
--- /dev/null
+++ b/build/tools/scripts/GetSharedFrameworkVersion.ps1
@@ -0,0 +1,6 @@
+$infoOutput = dotnet --info
+$versions = $infoOutput | Select-String -Pattern "version"
+$FXVersionRaw = $versions | Select-Object -Last 1
+$FXVersionString = $FXVersionRaw.ToString()
+$FXVersion = $FXVersionString.SubString($FXVersionString.IndexOf(':') + 1).Trim()
+Write-Host $FXVersion
diff --git a/build/tools/scripts/GetSharedFrameworkVersion.sh b/build/tools/scripts/GetSharedFrameworkVersion.sh
new file mode 100755
index 0000000000..dee9ea2db8
--- /dev/null
+++ b/build/tools/scripts/GetSharedFrameworkVersion.sh
@@ -0,0 +1,2 @@
+#!/usr/bin/env bash
+dotnet --info | grep -i version | tail -1 | cut -f 2 -d ":" | tr -d ' '
\ No newline at end of file
diff --git a/build/tools/templates/HostingStartup/HostingStartup.csproj b/build/tools/templates/HostingStartup/HostingStartup.csproj
new file mode 100644
index 0000000000..dbb96336d5
--- /dev/null
+++ b/build/tools/templates/HostingStartup/HostingStartup.csproj
@@ -0,0 +1,20 @@
+
+
+
+ netcoreapp2.0
+ Exe
+
+
+
+
+
+
+
+
+ $(RuntimeFrameworkVersion)
+ $(DepsOutputPath)\$(HostingStartupPackageName)\shared\Microsoft.NETCore.App\$(DepsRuntimeFrameworkVersion)\$(HostingStartupPackageName).deps.json
+
+
+
+
+
diff --git a/build/tools/templates/HostingStartup/Program.cs b/build/tools/templates/HostingStartup/Program.cs
new file mode 100644
index 0000000000..8cd3c0026c
--- /dev/null
+++ b/build/tools/templates/HostingStartup/Program.cs
@@ -0,0 +1,7 @@
+// Copyright (c) .NET Foundation and contributors. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+public class Program
+{
+ public static void Main() { }
+}
\ No newline at end of file
diff --git a/build/tools/templates/RS.Manifest/RS.Manifest.csproj b/build/tools/templates/RS.Manifest/RS.Manifest.csproj
new file mode 100644
index 0000000000..0e9d1c5186
--- /dev/null
+++ b/build/tools/templates/RS.Manifest/RS.Manifest.csproj
@@ -0,0 +1,22 @@
+
+
+
+
+
+ netcoreapp2.0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Microsoft.AspNetCore.All/Microsoft.AspNetCore.All.csproj b/src/Microsoft.AspNetCore.All/Microsoft.AspNetCore.All.csproj
new file mode 100644
index 0000000000..bdbf65814c
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/Microsoft.AspNetCore.All.csproj
@@ -0,0 +1,19 @@
+
+
+
+
+
+ false
+ netcoreapp2.0
+ aspnetcore
+ Microsoft.AspNetCore.All
+ false
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/PublishWithAspNetCoreTargetManifest.targets b/src/Microsoft.AspNetCore.All/build/PublishWithAspNetCoreTargetManifest.targets
new file mode 100644
index 0000000000..a590cf01f1
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/PublishWithAspNetCoreTargetManifest.targets
@@ -0,0 +1,29 @@
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+ $(TargetManifestFiles);@(AspNetCoreTargetManifestFiles)
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-common.xml b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-common.xml
new file mode 100755
index 0000000000..3b0c4bda7c
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-common.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-linux-x64.xml b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-linux-x64.xml
new file mode 100755
index 0000000000..e548a00368
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-linux-x64.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-osx-x64.xml b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-osx-x64.xml
new file mode 100755
index 0000000000..369db3ef5b
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-osx-x64.xml
@@ -0,0 +1,171 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-win7-x64.xml b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-win7-x64.xml
new file mode 100755
index 0000000000..0155a8e72c
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-win7-x64.xml
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-win7-x86.xml b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-win7-x86.xml
new file mode 100755
index 0000000000..362dab9895
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/aspnetcore-store-2.0.0-win7-x86.xml
@@ -0,0 +1,172 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/build/netcoreapp2.0/Microsoft.AspNetCore.All.targets b/src/Microsoft.AspNetCore.All/build/netcoreapp2.0/Microsoft.AspNetCore.All.targets
new file mode 100644
index 0000000000..0bed51f606
--- /dev/null
+++ b/src/Microsoft.AspNetCore.All/build/netcoreapp2.0/Microsoft.AspNetCore.All.targets
@@ -0,0 +1,3 @@
+
+
+
diff --git a/src/Microsoft.AspNetCore.All/lib/netcoreapp2.0/_._ b/src/Microsoft.AspNetCore.All/lib/netcoreapp2.0/_._
new file mode 100644
index 0000000000..e69de29bb2