-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
Priority:0Work that we can't release withoutWork that we can't release withoutTeam:LibrariesTeam:RuntimeUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-Metalinkable-frameworkIssues associated with delivering a linker friendly frameworkIssues associated with delivering a linker friendly framework
Milestone
Description
In 5.0 we introduced linker capability to warn about code and patterns which are not trimming safe. We will build on top of that feature to resolve all warnings in our core SDKs to allow developers to enable this linker capability for their code and 3rd party libraries to give them confidence that trimming does not alter their app behaviour unexpectedly.
We'll also work on further enhancing the warning user experience to give the developers feedback about potential problems in their app as early as possible.
The primary goal for .NET6 is to have all linker related warnings resolved for core SDKs for all workloads which use publish with trimming enabled by default. In particular following workloads
- Blazor Client/WebAssembly
- Mobile iOS/tvOS (Xamarin.iOS)
- Mobile Android (Xamarin.Android)
- macOS UI (Xamarin.Mac)
- Hybrid Blazor (optional)
Work Items
- Regression test for console app warnings Verify linker warnings for "Hello, world" sdk#13994
- Linker lazy loading Change referenced assemblies processing to be on demand in MarkStep linker#1164
- Support for startup hook feature Handling of startup hooks in linked applications #36526
- Add analyzers for all linker warnings
- List and categorize all netcoreapp linker warnings Categorize linking warnings for netcoreapp #44035
- Fix warnings in .NET Libraries Fix ILLink warnings in .NET Libraries #45623
- End-to-end experience for "publish feature" analyzers including trimming Analyzers for publish only functionality sdk#14562
- Default values for feature switches in trimmed console apps Default values for feature switches in trimmed console apps sdk#14475
- EventSource linkability
- COM linkability Add the ability to remove COM support using ILLinker #36659
- Mitigations for DCS DataContractSerialization is not linker friendly #36154
- Mitigations for Xml serializer XmlSerializer.Serialize doesn't work when using TrimMode=link #41389
- Trimming tests for all configurations Libraries trimming test are missing a lot of configurations #39274
Partner dependencies:
- Roslyn support for suppression using
UnconditionalSuppressAttributeRequest: TreatUnconditionalSuppressMessageAttributelikeSuppressMessageAttributeroslyn#48885 - Roslyn support Flow attributes on generic types to compiler generated constructs Flow attributes on generic types to compiler generated constructs roslyn#46646
MaciOS
- [.NET 6] Linker may not preserve exported methods with overrides macios#11449
- [.NET 6 linker] Keep wrapper types referenced from ProtocolAttribute macios#11985
- [.NET 6] Enable the sealer optimization in the linker macios#9573
- [.NET 6] Enable the metadata reducer optimization in the linker macios#9612
dymo, haltcase, DillonN, AmrAlSayed0 and jizcdavidfowl, rogihee and DillonN
Metadata
Metadata
Labels
Priority:0Work that we can't release withoutWork that we can't release withoutTeam:LibrariesTeam:RuntimeUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-Metalinkable-frameworkIssues associated with delivering a linker friendly frameworkIssues associated with delivering a linker friendly framework