Closed
Description
Problem
Currently, framework-dependent deployments of Microsoft.AspNetCore.App use ready-to-run optimized images from the shared framework installation. Self-contained applications, however, do not get the ready-to-run optimizations. This happens because dotnet publish
collects implementations binaries from NuGet packages and puts them in the publish directory, and the versions of ASP.NET Core assemblies in NuGet are not crossgen optimized.
Proposed solution
Produce platform-specific packages for Microsoft.AspNetCore.App, and use this to provide ready-to-run optimized versions of .dlls for self-contained apps.
Requirements
Follow the convention set by runtime.$(rid).Microsoft.NETCore.App packages. This means introducing:
- runtime.win-x64.Microsoft.AspNetCore.App
- runtime.win-x86.Microsoft.AspNetCore.App
- runtime.osx-x64.Microsoft.AspNetCore.App
- runtime.linux-x64.Microsoft.AspNetCore.App
- runtime.linux-arm.Microsoft.AspNetCore.App
- runtime.linux-musl-x64.Microsoft.AspNetCore.App
Package layout:
runtimes/
$(rid)/
lib/
*.dll (ready-to-run optimized binaries)
native/
*.{so,dylib,dll} (native binaries, if any)
ref/
netstandard/
_._ (placeholder required to make NuGet happy and to ensure this package doesn't introduce compilation refs)