- 
                Notifications
    You must be signed in to change notification settings 
- Fork 5.2k
Description
#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."