Skip to content

Make System.Transactions.Local trimmable on Windows #75031

Closed
@eerhardt

Description

@eerhardt

#72051 added IsTrimmable=false to System.Transactions.Local, which is an assembly in the shared framework. This means it is referenced for every app. Users don't opt-in and can't opt-out of referencing it in their app.

As #74506 points out, this caused a size regression on WASM. Subsequently #74828 fixed it to only be IsTrimmable=false on non-Windows.

However, Windows is still a problem. Setting IsTrimmable=false on any shared framework library is not correct. Instead, we need to be marking the unsafe APIs with [RequiresUnreferencedCode] and need to be using trimmer descriptors as necessary in order to make the library build not trim needed, unreferenced code.

As part of this, we should probably add a rule to our build that says "All shared fx libraries should be 'IsTrimmable=true' on all platforms."

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions