diff --git a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
index a59765a75feb..ec4953dcc0a6 100644
--- a/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
+++ b/src/Framework/ref/Microsoft.AspNetCore.App.Ref.csproj
@@ -18,11 +18,10 @@ This package is an internal implementation of the .NET Core SDK and is not meant
aspnetcore;targeting-pack
true
-
- TargetingPack
+ DotnetPlatform
ref/$(TargetFramework)/
- $(TargetingPackLayoutRoot)packs/Microsoft.AspNetCore.App.Ref/$(PackageVersion)/$(RefAssemblyPackagePath)
+ $(TargetingPackLayoutRoot)packs/Microsoft.AspNetCore.App.Ref/$(PackageVersion)/
aspnetcore-targeting-pack-$(PackageVersion).zip
$(InstallersOutputPath)$(ArchiveOutputFileName)
@@ -56,7 +55,6 @@ This package is an internal implementation of the .NET Core SDK and is not meant
$(BuildDependsOn);
GeneratePackageConflictManifest;
_ResolveTargetingPackContent;
- _BatchCopyToOutputDirectory;
_BatchCopyToLayoutTargetDir;
_CreateTargetingPackArchive;
@@ -87,15 +85,11 @@ This package is an internal implementation of the .NET Core SDK and is not meant
-
-
+
+
+
-
-
-
- <_PackageFiles Include="@(RefPackContent)" PackagePath="$(RefAssemblyPackagePath)" />
- <_PackageFiles Include="$(TargetDir)$(PackageConflictManifestFileName)" PackagePath="$(PackageConflictManifestPackagePath)" />
+ <_PackageFiles Include="@(RefPackContent)" />
@@ -114,25 +108,14 @@ This package is an internal implementation of the .NET Core SDK and is not meant
Overwrite="true" />
-
-
-
-
-
-
+ Outputs="@(RefPackContent->'$(LayoutTargetDir)%(PackagePath)%(FileName)%(Extension)')">
diff --git a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
index 6b6812b232bd..43935d13b8e3 100644
--- a/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
+++ b/src/Framework/src/Microsoft.AspNetCore.App.Runtime.csproj
@@ -15,6 +15,8 @@
Microsoft.AspNetCore.App
$(MSBuildProjectName).$(RuntimeIdentifier)
true
+
+ false
Provides a default set of APIs for building an ASP.NET Core application. Contains assets used for self-contained deployments.
@@ -23,8 +25,7 @@ This package is an internal implementation of the .NET Core SDK and is not meant
aspnetcore;shared-framework
true
-
- RuntimePack
+ DotnetPlatform
runtimes/$(RuntimeIdentifier)/lib/
diff --git a/src/Framework/src/SharedFx.targets b/src/Framework/src/SharedFx.targets
index cbd36bc96237..9ecc0338045c 100644
--- a/src/Framework/src/SharedFx.targets
+++ b/src/Framework/src/SharedFx.targets
@@ -15,10 +15,10 @@ This targets file should only be imported by .shfxproj files.
GenerateSharedFxVersionsFile;
GenerateBuildDependencyFile;
PrepareForPublish;
- GeneratePublishDependencyFile;
- GenerateSharedFxMetadataFiles;
GenerateBuildRuntimeConfigurationFiles;
ComputeAndCopyFilesToPublishDirectory;
+ GeneratePublishDependencyFile;
+ GenerateSharedFxMetadataFiles;
CopySharedFxToOutput;
CollectSharedFxOutput;
PostBuildEvent;
diff --git a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
index 3173cbf4b406..5ab3b47fc145 100644
--- a/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
+++ b/src/Framework/test/Microsoft.AspNetCore.App.UnitTests.csproj
@@ -49,6 +49,10 @@
<_Parameter1>ManifestOutputDir
<_Parameter2>%(_ResolvedFrameworkReference.ManifestOutputDir)
+
+ <_Parameter1>RuntimeAssetsOutputPath
+ <_Parameter2>%(_ResolvedFrameworkReference.RuntimeAssetsOutputPath)
+
diff --git a/src/Framework/test/SharedFxTests.cs b/src/Framework/test/SharedFxTests.cs
index e8217d45461f..11ea2426f443 100644
--- a/src/Framework/test/SharedFxTests.cs
+++ b/src/Framework/test/SharedFxTests.cs
@@ -24,6 +24,33 @@ public SharedFxTests(ITestOutputHelper output)
_expectedRid = TestData.GetSharedFxRuntimeIdentifier();
}
+ [Fact]
+ public void SharedFrameworkContainsExpectedFiles()
+ {
+ var actualAssemblies = Directory.GetFiles(TestData.GetTestDataValue("RuntimeAssetsOutputPath"), "*.dll")
+ .Select(Path.GetFileNameWithoutExtension)
+ .ToHashSet();
+ var expectedAssemblies = TestData.GetSharedFxDependencies()
+ .Split(';', StringSplitOptions.RemoveEmptyEntries)
+ .ToHashSet();
+
+ _output.WriteLine("==== actual assemblies ====");
+ _output.WriteLine(string.Join('\n', actualAssemblies));
+ _output.WriteLine("==== expected assemblies ====");
+ _output.WriteLine(string.Join('\n', expectedAssemblies));
+
+ var missing = expectedAssemblies.Except(actualAssemblies);
+ var unexpected = actualAssemblies.Except(expectedAssemblies);
+
+ _output.WriteLine("==== missing assemblies from the framework ====");
+ _output.WriteLine(string.Join('\n', missing));
+ _output.WriteLine("==== unexpected assemblies in the framework ====");
+ _output.WriteLine(string.Join('\n', unexpected));
+
+ Assert.Empty(missing);
+ Assert.Empty(unexpected);
+ }
+
[Fact]
public void PlatformManifestListsAllFiles()
{