Open jamiewinder opened 1 hour ago
Tagging subscribers to this area: @tarekgh, @tommcdon, @pjanotti See info in area-owners.md if you want to be subscribed.
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas See info in area-owners.md if you want to be subscribed.
@agocke, @MichalStrehovsky I confirmed the issue reproduce. The constructor exists in the ActivitySource
class System.Diagnostics.ActivitySource..ctor(System.String). Note, this constructor didn't exist in net8 version of the library. Are we performing the trimming against the assembly shipped with the framework?
The ILLink.Substitutions.xml in both net8 and net9 versions of System.Diagnostics.DiagnosticSource don't have any section for ActivitySource
type. Could you please have a look?
Making the app target net9 makes the issue disappear.
Looks like a dup of #108909 and related issues.
The conflicts between inbox assemblies and OOB packages are not resolved correctly for AOT compilation. The inbox assembly wins even when the OOB packages provides higher version.
Description
The System.Diagnostics.DiagnosticSource 9.0.0 package doesn't appear to be trim safe. Specifically the
ActivitySource
class which appears to be missing a constructor in a published app.If I try to call this constructor in AOT-published code, I get a
MissingMethodException
:Reproduction Steps
Create a normal .NET 8 Console App with NativeAOT enabled.
Replace Program.cs
Publish and run
App successfully runs to completion. ✔️
Install the System.Diagnostics.DiagnosticSource 9.0.0 package
Publish and run
Application crashes with MissingMethodException ❌
Downgrade System.Diagnostics.DiagnosticSource 9.0.0 package to 8.0.1
Publish and run
App successfully runs to completion. ✔️
Expected behavior
Constructor should be callable in AOT
Actual behavior
Constructor is not callable in AOT
Regression?
8.0.1 works, 9.0.0 does not.
Known Workarounds
No response
Configuration
.NET Version: 8.0 OS: Windows Arch: x64
Other information
No response