Skip to content

Produce platform-specific packages for Microsoft.AspNetCore.App #3607

Closed
@natemcmaster

Description

@natemcmaster

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)

Metadata

Metadata

Assignees

Labels

area-infrastructureIncludes: MSBuild projects/targets, build scripts, CI, Installers and shared framework

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions