Skip to content

Resolve runtime pack assets for crossgen even if app is framework-dependent #3110

@nguerrera

Description

@nguerrera

Crossgen operates on implementation assemblies only, even when passed as references to the compiler. To crossgen a framework-dependent app, we need all of the framework implementation assemblies to be passed to crossgen as references.

Note that crossgen requires picking a RID. The app can be framework-dependent, but it must be RID specific. (Crossgen generates native code, which can't be rid-agnostic, obviously.) We are guaranteed to have downloaded the runtime packs, we just need to resolve the framework assemblies from it as though the app was self-contained, but without putting them in deps.json or copying them, etc.

Today, crossgen tasks can find the base shared framework implementation assemblies next to it (it ships in the base runtime pack), but this doesn't work for the other frameworks like WindowsDesktop or ASP.NET. This also can't just blindly aggregate all the files in all the runtime packs, this list needs to account for conflict resolution (WindowsBase in WindowsDesktop wins over WindowsBase in NETCoreApp), etc.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions