-
Notifications
You must be signed in to change notification settings - Fork 4.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible System.Diagnostics.DiagnosticSource trimming issue #109872
Comments
Tagging subscribers to this area: @tarekgh, @tommcdon, @pjanotti |
Tagging subscribers to this area: @agocke, @MichalStrehovsky, @jkotas |
@agocke, @MichalStrehovsky I confirmed the issue reproduce. The constructor exists in the The ILLink.Substitutions.xml in both net8 and net9 versions of System.Diagnostics.DiagnosticSource don't have any section for |
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. |
@tarekgh This is indeed how I first encountered the issue before reducing it down to the above. It isn't just OpenTelemetry either, a lot of the recently released Microsoft 9.x libraries now have this dependency, rendering them unusable with AOT and .NET 8. |
I'm seeing this issue in Blazor WASM .NET 8 when using 9.x packages as well (Microsoft.AspNetCore.SignalR.Client 9.0.0 specifically). |
Blazor WASM is guaranteed to be a different issue. Could you please open a new issue so that it can be routed to the right people? |
Closing as dup of #108909 I've prioritized fixing that issue. |
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
The text was updated successfully, but these errors were encountered: