getsentry / sentry-dotnet

Sentry SDK for .NET
https://docs.sentry.io/platforms/dotnet
MIT License
566 stars 203 forks source link

Sentry assembly produces trim warnings when compiling AOT #3304

Open jamescrosswell opened 4 weeks ago

jamescrosswell commented 4 weeks ago

Steps to reproduce

  1. Follow the Tutorial to Publish an ASP.NET Core app using Native AOT
  2. Add the Sentry.AspNetcore NuGet package to the applications
  3. Configure Sentry per the docs

Now publish the application again.

Expected Result

Application should publish without warnings.

Actual Result

The application is published correctly but the publish operation generates trim warnings:

MyFirstAotWebApi -> /Users/jamescrosswell/code/MyFirstAotWebApi/bin/Release/net8.0/osx-arm64/publish/ jamescrosswell@MacBook-Pro MyFirstAotWebApi % dotnet publish -f net8.0 MSBuild version 17.9.6+a4ecab324 for .NET Determining projects to restore... All projects are up-to-date for restore. MyFirstAotWebApi -> /Users/jamescrosswell/code/MyFirstAotWebApi/bin/Release/net8.0/osx-arm64/MyFirstAotWebApi.dll Generating native code /Users/jamescrosswell/.nuget/packages/sentry/4.4.0/lib/net8.0/Sentry.dll : warning IL2104: Assembly 'Sentry' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/Users/jamescrosswell/code/MyFirstAotWebApi/MyFirstAotWebApi.csproj] MyFirstAotWebApi -> /Users/jamescrosswell/code/MyFirstAotWebApi/bin/Release/net8.0/osx-arm64/publish/

Remarks

This is very odd as we explicitly set the IsAotCompatible MS Build property which should set IsTrimmable and enable the trim analyzer as well: https://github.com/getsentry/sentry-dotnet/blob/4b33c36a22aec55d3e1c75eca51acc679a1e4d21/src/Sentry/Sentry.csproj#L27-L29

If there are any trim warnings then, we should be getting these when building Sentry for the net8.0 targets.

bitsandfoxes commented 3 weeks ago

This happened sporadically and was not 100% reproducible?