dotnet / aspnetcore

ASP.NET Core is a cross-platform .NET framework for building modern cloud-based web applications on Windows, Mac, or Linux.
https://asp.net
MIT License
35.19k stars 9.93k forks source link

[Performance] Long NativeAOT builds on Benchmarks.csproj #46139

Open sebastienros opened 1 year ago

sebastienros commented 1 year ago

It takes more than 8 minutes to build a medium sized application in NativeAoT compared to 15s without (both as self-contained).

Project

https://github.com/aspnet/Benchmarks/tree/main/src/Benchmarks

Build command line

dotnet publish Benchmarks.csproj -c Release -o ./published /p:RestoreNoCache=true /p:PublishAot=true /p:StripSymbols=true --framework net8.0 --self-contained -r linux-x64

Build log

``` Command: dotnet publish Benchmarks.csproj -c Release -o /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/published /p:MicrosoftNETCoreAppPackageVersion=8.0.0-alpha.1.23067.2 /p:MicrosoftAspNetCoreAppPackageVersion=8.0.0-alpha.1.23067.1 /p:GenerateErrorForMissingTargetingPacks=false /p:RestoreNoCache=true /p:MicrosoftNETPlatformLibrary=Microsoft.NETCore.App /p:PublishAot=true /p:StripSymbols=true --framework net8.0 --self-contained -r linux-x64 MSBuild version 17.5.0-preview-23056-01+d89d4bc91 for .NET Determining projects to restore... Restored /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj (in 362 ms). /tmp/benchmarks-agent/benchmarks-server-1/oeutlgv2.f1a/sdk/8.0.100-alpha.1.23063.11/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(287,5): message NETSDK1057: You are using a preview version of .NET. See: https://aka.ms/dotnet-support-policy [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Middleware/JsonMiddleware.cs(56,24): warning IL3050: Using member 'System.Text.Json.JsonSerializer.SerializeAsync(Stream, TValue, JsonSerializerOptions, CancellationToken)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Middleware/JsonMiddleware.cs(56,24): warning IL2026: Using member 'System.Text.Json.JsonSerializer.SerializeAsync(Stream, TValue, JsonSerializerOptions, CancellationToken)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Data/EfDb.cs(29,20): warning IL3050: Using member 'System.Linq.Queryable.First(IQueryable, Expression>)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Data/EfDb.cs(54,20): warning IL3050: Using member 'System.Linq.Queryable.First(IQueryable, Expression>)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(55,13): warning IL3050: Using member 'Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection, IConfiguration)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Binding strongly typed objects to configuration values may require generating dynamic code at runtime. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(64,31): warning IL3050: Using member 'Microsoft.Extensions.Configuration.ConfigurationBinder.Get(IConfiguration)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(55,13): warning IL2026: Using member 'Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection, IConfiguration)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(64,31): warning IL2026: Using member 'Microsoft.Extensions.Configuration.ConfigurationBinder.Get(IConfiguration)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] Benchmarks -> /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/bin/Release/net8.0/linux-x64/Benchmarks.dll Generating native code /root/.nuget/packages/microsoft.entityframeworkcore.relational/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll : warning IL2104: Assembly 'Microsoft.EntityFrameworkCore.Relational' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/npgsql/6.0.0/lib/net6.0/Npgsql.dll : warning IL2104: Assembly 'Npgsql' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll : warning IL2104: Assembly 'Newtonsoft.Json' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.Razor.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.Razor' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.Razor.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.Razor' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.identity.client/4.22.0/lib/netcoreapp2.1/Microsoft.Identity.Client.dll : warning IL2104: Assembly 'Microsoft.Identity.Client' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.data.sqlclient/4.0.0/runtimes/unix/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll : warning IL2104: Assembly 'Microsoft.Data.SqlClient' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.identitymodel.tokens/6.8.0/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll : warning IL2104: Assembly 'Microsoft.IdentityModel.Tokens' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.data.sqlite.core/6.0.0/lib/net6.0/Microsoft.Data.Sqlite.dll : warning IL2104: Assembly 'Microsoft.Data.Sqlite' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(55): Trim analysis warning IL2026: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection,IConfiguration)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(55): AOT analysis warning IL3050: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure(IServiceCollection,IConfiguration)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Binding strongly typed objects to configuration values may require generating dynamic code at runtime. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(64): Trim analysis warning IL2026: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.Configuration.ConfigurationBinder.Get(IConfiguration)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Startup.cs(64): AOT analysis warning IL3050: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.Configuration.ConfigurationBinder.Get(IConfiguration)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Middleware/JsonMiddleware.cs(56): Trim analysis warning IL2026: Benchmarks.Middleware.JsonMiddleware.Invoke(HttpContext): Using member 'System.Text.Json.JsonSerializer.SerializeAsync(Stream,JsonMessage,JsonSerializerOptions,CancellationToken)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Middleware/JsonMiddleware.cs(56): AOT analysis warning IL3050: Benchmarks.Middleware.JsonMiddleware.Invoke(HttpContext): Using member 'System.Text.Json.JsonSerializer.SerializeAsync(Stream,JsonMessage,JsonSerializerOptions,CancellationToken)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/newtonsoft.json/13.0.1/lib/netstandard2.0/Newtonsoft.Json.dll : warning IL3053: Assembly 'Newtonsoft.Json' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.ViewFeatures' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.DataAnnotations.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.DataAnnotations' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.ViewFeatures.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.ViewFeatures' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/npgsql.entityframeworkcore.postgresql/6.0.0/lib/net6.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll : warning IL3053: Assembly 'Npgsql.EntityFrameworkCore.PostgreSQL' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/npgsql.entityframeworkcore.postgresql/6.0.0/lib/net6.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll : warning IL2104: Assembly 'Npgsql.EntityFrameworkCore.PostgreSQL' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/npgsql/6.0.0/lib/net6.0/Npgsql.dll : warning IL3053: Assembly 'Npgsql' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.relational/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.Relational.dll : warning IL3053: Assembly 'Microsoft.EntityFrameworkCore.Relational' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.dll : warning IL3053: Assembly 'Microsoft.EntityFrameworkCore' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.dll : warning IL2104: Assembly 'Microsoft.EntityFrameworkCore' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/8.0.0-alpha.1.23058.2/framework/System.Linq.Expressions.dll : warning IL3053: Assembly 'System.Linq.Expressions' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.abstractions/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.Abstractions.dll : warning IL2104: Assembly 'Microsoft.EntityFrameworkCore.Abstractions' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.abstractions/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.Abstractions.dll : warning IL3053: Assembly 'Microsoft.EntityFrameworkCore.Abstractions' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.Core.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.Core' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.Core.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.Core' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.Abstractions.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.Abstractions' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.Abstractions.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.Abstractions' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/dapper/2.0.30/lib/netstandard2.0/Dapper.dll : warning IL2104: Assembly 'Dapper' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.sqlserver/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.SqlServer.dll : warning IL3053: Assembly 'Microsoft.EntityFrameworkCore.SqlServer' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.sqlserver/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.SqlServer.dll : warning IL2104: Assembly 'Microsoft.EntityFrameworkCore.SqlServer' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/system.configuration.configurationmanager/5.0.0/lib/netstandard2.0/System.Configuration.ConfigurationManager.dll : warning IL2104: Assembly 'System.Configuration.ConfigurationManager' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.identitymodel.tokens/6.8.0/lib/netstandard2.0/Microsoft.IdentityModel.Tokens.dll : warning IL3053: Assembly 'Microsoft.IdentityModel.Tokens' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.data.sqlclient/4.0.0/runtimes/unix/lib/netcoreapp3.1/Microsoft.Data.SqlClient.dll : warning IL3053: Assembly 'Microsoft.Data.SqlClient' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/azure.core/1.6.0/lib/netstandard2.0/Azure.Core.dll : warning IL2104: Assembly 'Azure.Core' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/azure.core/1.6.0/lib/netstandard2.0/Azure.Core.dll : warning IL3053: Assembly 'Azure.Core' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.identity.client/4.22.0/lib/netcoreapp2.1/Microsoft.Identity.Client.dll : warning IL3053: Assembly 'Microsoft.Identity.Client' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/system.configuration.configurationmanager/5.0.0/lib/netstandard2.0/System.Configuration.ConfigurationManager.dll : warning IL3053: Assembly 'System.Configuration.ConfigurationManager' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/azure.identity/1.3.0/lib/netstandard2.0/Azure.Identity.dll : warning IL2104: Assembly 'Azure.Identity' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Components.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Components' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton,ConsoleLoggerFormatterConfigureOptions`2>(): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe,ConsoleLoggerFormatterConfigureOptions`2>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton,ConsoleLoggerFormatterConfigureOptions`2>(): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe,ConsoleLoggerFormatterConfigureOptions`2>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton,ConsoleLoggerFormatterConfigureOptions`2>(): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe,ConsoleLoggerFormatterConfigureOptions`2>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton,LoggerProviderConfigureOptions`2>(): Using member 'Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigureOptions`2.LoggerProviderConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe,LoggerProviderConfigureOptions`2>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigureOptions`2.LoggerProviderConfigureOptions`2(ILoggerProviderConfiguration`1)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.sqlite.core/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.Sqlite.dll : warning IL3053: Assembly 'Microsoft.EntityFrameworkCore.Sqlite' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.entityframeworkcore.sqlite.core/6.0.0/lib/net6.0/Microsoft.EntityFrameworkCore.Sqlite.dll : warning IL2104: Assembly 'Microsoft.EntityFrameworkCore.Sqlite' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/dapper/2.0.30/lib/netstandard2.0/Dapper.dll : warning IL3053: Assembly 'Dapper' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.mvc.newtonsoftjson/8.0.0-alpha.1.23067.1/lib/net8.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.mvc.newtonsoftjson/8.0.0-alpha.1.23067.1/lib/net8.0/Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.jsonpatch/8.0.0-alpha.1.23067.1/lib/net8.0/Microsoft.AspNetCore.JsonPatch.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.JsonPatch' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.jsonpatch/8.0.0-alpha.1.23067.1/lib/net8.0/Microsoft.AspNetCore.JsonPatch.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.JsonPatch' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.identitymodel.logging/6.8.0/lib/netstandard2.0/Microsoft.IdentityModel.Logging.dll : warning IL2104: Assembly 'Microsoft.IdentityModel.Logging' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.RazorPages.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.RazorPages' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.RazorPages.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.RazorPages' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Components.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Components' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: Microsoft.AspNetCore.Http.Json.JsonOptions.CreateDefaultTypeResolver(): Using member 'System.Text.Json.Serialization.Metadata.DefaultJsonTypeInfoResolver.DefaultJsonTypeInfoResolver()' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Http.Extensions.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Http.Extensions' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.ApiExplorer.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.ApiExplorer' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.AspNetCore.Mvc.ApiExplorer.dll : warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.ApiExplorer' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/8.0.0-alpha.1.23058.2/framework/Microsoft.CSharp.dll : warning IL3053: Assembly 'Microsoft.CSharp' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Data.Common/src/System/Data/DataTable.cs(6718): Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter): Using member 'System.Data.DataTable.WriteXmlInternal(XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataTable.WriteXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Data.Common/src/System/Data/DataSet.cs(3519): Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter): Using member 'System.Data.DataSet.WriteXmlInternal(XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataSet.WriteXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/8.0.0-alpha.1.23058.2/framework/System.Private.Xml.dll : warning IL3053: Assembly 'System.Private.Xml' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Data.Common/src/System/Data/DataTable.cs(6700): Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader): Using member 'System.Data.DataTable.ReadXmlSerializableInternal(XmlReader)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataTable.ReadXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Data.Common/src/System/Data/DataSet.cs(3497): Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader): Using member 'System.Data.DataSet.ReadXmlSerializableInternal(XmlReader)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataSet.ReadXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/Microsoft.Extensions.DependencyInjection.dll : warning IL3053: Assembly 'Microsoft.Extensions.DependencyInjection' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs(34): Trim analysis warning IL2026: System.Xml.Serialization.ReflectionXmlSerializationReader..cctor(): Using member 'System.Xml.Serialization.TypeScope.GetTypeDesc(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. calls GetTypeDesc. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs(35): Trim analysis warning IL2026: System.Xml.Serialization.ReflectionXmlSerializationReader..cctor(): Using member 'System.Xml.Serialization.TypeScope.GetTypeDesc(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. calls GetTypeDesc. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Data.Common/src/System/Data/DataTable.cs(6664): Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.GetSchema(): Using member 'System.Data.DataTable.GetXmlSchema()' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataTable.GetSchema uses TypeDescriptor and XmlSerialization underneath which are not trimming safe. Members from serialized types may be trimmed if not referenced directly. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /_/src/libraries/System.Data.Common/src/System/Data/DataSet.cs(3463): Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.GetSchema(): Using member 'System.Data.DataSet.WriteXmlSchema(DataSet,XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataSet.GetSchema uses TypeDescriptor and XmlSerialization underneath which are not trimming safe. Members from serialized types may be trimmed if not referenced directly. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/runtime.linux-x64.microsoft.dotnet.ilcompiler/8.0.0-alpha.1.23058.2/framework/System.Private.DataContractSerialization.dll : warning IL3053: Assembly 'System.Private.DataContractSerialization' produced AOT analysis warnings. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] ILC : Trim analysis warning IL2026: System.Security.Cryptography.Xml.CryptoHelpers.CreateFromName(String): Using member 'System.Security.Cryptography.CryptoConfig.CreateFromName(String)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. The default algorithm implementations might be removed, use strong type references like 'RSA.Create()' instead. [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] /root/.nuget/packages/microsoft.aspnetcore.app.runtime.linux-x64/8.0.0-alpha.1.23067.1/runtimes/linux-x64/lib/net8.0/System.Security.Cryptography.Xml.dll : warning IL2104: Assembly 'System.Security.Cryptography.Xml' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [/tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/Benchmarks.csproj::TargetFramework=net8.0] Benchmarks -> /tmp/benchmarks-agent/benchmarks-server-1/1ks3wpcb.box/benchmarks/src/Benchmarks/published/ Exit code: 0 ```
eerhardt commented 1 year ago

My initial thinking is that this is caused by defaulting TrimMode=partial in ASP.NET's Web Sdk. See https://github.com/dotnet/sdk/issues/30059.

When I run the publish as above, it takes 7:43 on my machine. Of that, 7:26 is spent in the IlcCompile Exec.

When I run the publish with -p:TrimMode=full, it takes 3:10. So over half of the time is taken off, because it is generating code for all methods in used assemblies.

Even with "full" trimming enabled, the resulting app is 72 MB on Windows.

You can see all of the assemblies being referenced by looking in obj\Release\net8.0\win-x64\native\Benchmarks.ilc.rsp. I've dumped them here for convenience:

``` microsoft.netcore.app.runtime.win-x64\8.0.0-alpha.1.23058.2\runtimes\win-x64\lib\net8.0\WindowsBase.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Antiforgery.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authentication.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authentication.Cookies.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authentication.Core.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authentication.OAuth.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authentication.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authorization.Policy.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Authorization.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Components.Authorization.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Components.Forms.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Components.Server.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Components.Web.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Components.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Connections.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.CookiePolicy.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Cors.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Cryptography.Internal.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Cryptography.KeyDerivation.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.DataProtection.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.DataProtection.Extensions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.DataProtection.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Diagnostics.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Diagnostics.HealthChecks.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Diagnostics.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.HostFiltering.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Hosting.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Hosting.Server.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Hosting.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Html.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.Connections.Common.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.Connections.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.Extensions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.Features.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.Results.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Http.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.HttpLogging.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.HttpOverrides.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.HttpsPolicy.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Identity.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Localization.Routing.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Localization.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Metadata.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.ApiExplorer.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Core.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Cors.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.DataAnnotations.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Formatters.Json.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Formatters.Xml.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Localization.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Razor.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.RazorPages.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.TagHelpers.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.OutputCaching.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.RateLimiting.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Razor.Runtime.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Razor.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.RequestDecompression.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.ResponseCaching.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.ResponseCaching.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.ResponseCompression.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Rewrite.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Routing.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Routing.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.HttpSys.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.IIS.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.IISIntegration.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.Kestrel.Core.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.Kestrel.Transport.NamedPipes.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.Kestrel.Transport.Quic.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.Kestrel.Transport.Sockets.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Server.Kestrel.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Session.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.SignalR.Common.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.SignalR.Core.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.SignalR.Protocols.Json.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.SignalR.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.StaticFiles.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.WebSockets.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.WebUtilities.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Caching.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Caching.Memory.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.Binder.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.CommandLine.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.EnvironmentVariables.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.FileExtensions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.Ini.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.Json.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.KeyPerFile.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.UserSecrets.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.Xml.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Configuration.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.DependencyInjection.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Diagnostics.HealthChecks.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Features.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.FileProviders.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.FileProviders.Composite.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.FileProviders.Embedded.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.FileProviders.Physical.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.FileSystemGlobbing.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Hosting.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Hosting.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Http.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Identity.Core.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Identity.Stores.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Localization.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Localization.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.Abstractions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.Configuration.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.Console.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.Debug.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.EventLog.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.EventSource.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.TraceSource.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Logging.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.ObjectPool.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Options.ConfigurationExtensions.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Options.DataAnnotations.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Options.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.Primitives.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Extensions.WebEncoders.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.JSInterop.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.Net.Http.Headers.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.Diagnostics.EventLog.Messages.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.Diagnostics.EventLog.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.IO.Pipelines.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.Security.Cryptography.Pkcs.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.Security.Cryptography.Xml.dll microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.Threading.RateLimiting.dll azure.core\1.6.0\lib\netstandard2.0\Azure.Core.dll azure.identity\1.3.0\lib\netstandard2.0\Azure.Identity.dll dapper\2.0.30\lib\netstandard2.0\Dapper.dll microsoft.aspnetcore.jsonpatch\3.0.0\lib\netstandard2.0\Microsoft.AspNetCore.JsonPatch.dll microsoft.aspnetcore.mvc.newtonsoftjson\3.0.0\lib\netcoreapp3.0\Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll microsoft.bcl.asyncinterfaces\1.0.0\lib\netstandard2.1\Microsoft.Bcl.AsyncInterfaces.dll microsoft.data.sqlclient\4.0.0\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll microsoft.data.sqlite.core\6.0.0\lib\net6.0\Microsoft.Data.Sqlite.dll microsoft.entityframeworkcore\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.dll microsoft.entityframeworkcore.abstractions\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.Abstractions.dll microsoft.entityframeworkcore.relational\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.Relational.dll microsoft.entityframeworkcore.sqlite.core\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.Sqlite.dll microsoft.entityframeworkcore.sqlserver\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.SqlServer.dll microsoft.extensions.dependencymodel\6.0.0\lib\netstandard2.0\Microsoft.Extensions.DependencyModel.dll microsoft.identity.client\4.22.0\lib\netcoreapp2.1\Microsoft.Identity.Client.dll microsoft.identity.client.extensions.msal\2.16.5\lib\netcoreapp2.1\Microsoft.Identity.Client.Extensions.Msal.dll microsoft.identitymodel.jsonwebtokens\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.JsonWebTokens.dll microsoft.identitymodel.logging\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Logging.dll microsoft.identitymodel.protocols\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Protocols.dll microsoft.identitymodel.protocols.openidconnect\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll microsoft.identitymodel.tokens\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Tokens.dll microsoft.win32.systemevents\5.0.0\runtimes\win\lib\netcoreapp3.0\Microsoft.Win32.SystemEvents.dll newtonsoft.json\12.0.2\lib\netstandard2.0\Newtonsoft.Json.dll newtonsoft.json.bson\1.0.2\lib\netstandard2.0\Newtonsoft.Json.Bson.dll npgsql\6.0.0\lib\net6.0\Npgsql.dll npgsql.entityframeworkcore.postgresql\6.0.0\lib\net6.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll sqlitepclraw.bundle_e_sqlite3\2.0.6\lib\netstandard2.0\SQLitePCLRaw.batteries_v2.dll sqlitepclraw.core\2.0.6\lib\netstandard2.0\SQLitePCLRaw.core.dll sqlitepclraw.provider.e_sqlite3\2.0.6\lib\net5.0\SQLitePCLRaw.provider.e_sqlite3.dll system.configuration.configurationmanager\5.0.0\lib\netstandard2.0\System.Configuration.ConfigurationManager.dll system.drawing.common\5.0.0\runtimes\win\lib\netcoreapp3.0\System.Drawing.Common.dll system.identitymodel.tokens.jwt\6.8.0\lib\netstandard2.0\System.IdentityModel.Tokens.Jwt.dll system.runtime.caching\5.0.0\runtimes\win\lib\netstandard2.0\System.Runtime.Caching.dll system.security.cryptography.protecteddata\5.0.0\runtimes\win\lib\netstandard2.0\System.Security.Cryptography.ProtectedData.dll system.security.permissions\5.0.0\lib\net5.0\System.Security.Permissions.dll system.windows.extensions\5.0.0\runtimes\win\lib\netcoreapp3.0\System.Windows.Extensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\Microsoft.CSharp.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\Microsoft.VisualBasic.Core.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\Microsoft.VisualBasic.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\Microsoft.Win32.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\Microsoft.Win32.Registry.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\mscorlib.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\netstandard.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.AppContext.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Buffers.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Collections.Concurrent.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Collections.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Collections.Immutable.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Collections.NonGeneric.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Collections.Specialized.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ComponentModel.Annotations.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ComponentModel.DataAnnotations.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ComponentModel.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ComponentModel.EventBasedAsync.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ComponentModel.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ComponentModel.TypeConverter.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Configuration.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Console.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Core.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Data.Common.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Data.DataSetExtensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Data.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.Contracts.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.Debug.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.DiagnosticSource.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.FileVersionInfo.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.Process.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.StackTrace.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.TextWriterTraceListener.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.Tools.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.TraceSource.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Diagnostics.Tracing.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Drawing.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Drawing.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Dynamic.Runtime.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Formats.Asn1.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Formats.Tar.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Globalization.Calendars.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Globalization.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Globalization.Extensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.Compression.Brotli.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.Compression.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.Compression.FileSystem.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.Compression.ZipFile.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.FileSystem.AccessControl.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.FileSystem.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.FileSystem.DriveInfo.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.FileSystem.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.FileSystem.Watcher.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.IsolatedStorage.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.MemoryMappedFiles.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.Pipes.AccessControl.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.Pipes.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.IO.UnmanagedMemoryStream.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Linq.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Linq.Expressions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Linq.Parallel.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Linq.Queryable.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Memory.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Http.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Http.Json.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.HttpListener.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Mail.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.NameResolution.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.NetworkInformation.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Ping.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Quic.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Requests.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Security.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.ServicePoint.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.Sockets.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.WebClient.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.WebHeaderCollection.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.WebProxy.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.WebSockets.Client.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Net.WebSockets.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Numerics.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Numerics.Vectors.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ObjectModel.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Private.DataContractSerialization.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Private.Uri.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Private.Xml.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Private.Xml.Linq.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.DispatchProxy.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.Emit.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.Emit.ILGeneration.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.Emit.Lightweight.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.Extensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.Metadata.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Reflection.TypeExtensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Resources.Reader.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Resources.ResourceManager.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Resources.Writer.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.CompilerServices.Unsafe.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.CompilerServices.VisualC.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Extensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Handles.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.InteropServices.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.InteropServices.JavaScript.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.InteropServices.RuntimeInformation.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Intrinsics.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Loader.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Numerics.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Serialization.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Serialization.Formatters.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Serialization.Json.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Serialization.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Runtime.Serialization.Xml.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.AccessControl.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Claims.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.Algorithms.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.Cng.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.Csp.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.Encoding.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.OpenSsl.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.Primitives.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Cryptography.X509Certificates.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Principal.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.Principal.Windows.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Security.SecureString.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ServiceModel.Web.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ServiceProcess.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Text.Encoding.CodePages.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Text.Encoding.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Text.Encoding.Extensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Text.Encodings.Web.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Text.Json.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Text.RegularExpressions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Channels.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Overlapped.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Tasks.Dataflow.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Tasks.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Tasks.Extensions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Tasks.Parallel.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Thread.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.ThreadPool.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Threading.Timer.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Transactions.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Transactions.Local.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.ValueTuple.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Web.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Web.HttpUtility.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Windows.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.Linq.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.ReaderWriter.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.Serialization.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.XDocument.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.XmlDocument.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.XmlSerializer.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.XPath.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Xml.XPath.XDocument.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\WindowsBase.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\sdk\System.Private.CoreLib.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\sdk\System.Private.DisabledReflection.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\sdk\System.Private.Reflection.Execution.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\sdk\System.Private.StackTraceMetadata.dll runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\sdk\System.Private.TypeLoader.dll ```

Looking at the mstat file for the TrimMode=full case, here are the largest assemblies by method size:

// ********** Methods Total Size 37,584,176
System.Private.CoreLib                   9,102,316
Npgsql                                   4,659,133
System.Private.Xml                       2,758,801
System.Linq                              2,148,272
System.Text.Json                         2,099,626
System.Private.CompilerGenerated         1,869,831
Microsoft.EntityFrameworkCore            1,389,980
Microsoft.Data.SqlClient                 910,465
Microsoft.EntityFrameworkCore.Relational 876,296
System.Data.Common                       795,546
Microsoft.Identity.Client                674,231
Microsoft.AspNetCore.Server.Kestrel.Core 587,972
System.Private.DataContractSerialization 539,389
System.Net.Http                          534,949
Microsoft.AspNetCore.Mvc.Core            468,516
System.Collections.Concurrent            450,727
System.Security.Cryptography             446,655
Microsoft.IdentityModel.Tokens           407,049
System.Linq.Expressions                  389,653
Newtonsoft.Json                          346,939
Microsoft.CSharp                         332,321
Microsoft.Extensions.Logging.Console     324,343
System.Text.RegularExpressions           291,218

By Namespace:

// ********** Size By Namespace
System.Collections.Generic               6,599,056
System.Runtime.CompilerServices          5,042,557
System                                   4,685,769
Npgsql.Internal.TypeHandlers             3,619,366
System.Linq                              3,219,973
Internal.CompilerGenerated               1,718,328
Npgsql.Internal.TypeHandling             1,419,909
System.Text.Json.Serialization.Converters 1,197,906
System.Xml                               1,148,438
System.Threading.Tasks                   761,097
System.Xml.Schema                        680,452
Microsoft.Data.SqlClient                 649,593
System.Collections.Concurrent            643,296
System.Text.Json.Serialization.Metadata  639,582
System.Xml.Serialization                 585,475
System.Data                              577,972
System.Linq.Expressions                  505,125
Npgsql                                   449,200
System.Net.Http                          433,449
System.Text.Json.Serialization           411,273
Microsoft.EntityFrameworkCore.Metadata.Internal 379,700
Microsoft.Extensions.Logging.Console     324,844
System.Text.Json                         310,122

And the "blobs" size:

// ********** Blobs Total Size 26,628,100
Metadata                                 3,912,870
ArrayOfFrozenObjects                     2,390,496
TypeGenericDictionary                    2,243,696
ResourceData                             2,102,349
MethodGenericDictionary                  1,887,688
GenericMethodsHashtable                  1,645,579
ExternalReferencesTable                  1,414,300
StackTraceMethodMapping                  1,244,808
InterfaceDispatchCellSection             1,045,104
WritableData                             980,416
NativeLayoutInfo                         960,329
FatFunctionPointer                       844,192
ReflectionInvokeMap                      792,698
GenericComposition                       729,764
GenericTypesHashtable                    694,361
InterfaceDispatchMap                     442,722
EETypeOptionalFields                     300,073
MethodReadOnlyData                       280,636
StaticsInfoHashtable                     278,641
NonGCStatics                             263,255
FieldRvaData                             227,118
SealedVTable                             213,320
ReadyToRunHelper                         187,173
GCStatics                                186,896
TypeMetadataMap                          174,902
ArrayOfEmbeddedPointers                  143,688
GCStaticsPreInitData                     134,776
ReflectionVirtualInvokeMap               130,708
ExactMethodInstantiations                103,842

There's just a LOT of code to go through here.

cc @MichalStrehovsky

MichalStrehovsky commented 1 year ago

Does the publish print any messages about generic recursion (not warnings, just messages)? Last time I checked npgsql had a generic recursion and we spent most of the time/size expanding it and then trying to not run out of memory/compile forever.

eerhardt commented 1 year ago

Does the publish print any messages about generic recursion (not warnings, just messages)?

Not that I can see. Just running ilc @...rsp directly in my terminal, I don't see any messages beyond the warnings:

C:\Users\eerhardt\.nuget\packages\npgsql\6.0.0\lib\net6.0\Npgsql.dll: warning IL2104: Assembly 'Npgsql' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\git\benchmarks\src\Benchmarks\Startup.cs(55): Trim analysis warning IL2026: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure<AppSettings>(IServiceCollection,IConfiguration)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
C:\git\benchmarks\src\Benchmarks\Startup.cs(55): AOT analysis warning IL3050: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.DependencyInjection.OptionsConfigurationServiceCollectionExtensions.Configure<AppSettings>(IServiceCollection,IConfiguration)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Binding strongly typed objects to configuration values may require generating dynamic code at runtime.
C:\git\benchmarks\src\Benchmarks\Startup.cs(64): Trim analysis warning IL2026: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.Configuration.ConfigurationBinder.Get<AppSettings>(IConfiguration)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. In case the type is non-primitive, the trimmer cannot statically analyze the object's type so its members may be trimmed.
C:\git\benchmarks\src\Benchmarks\Startup.cs(64): AOT analysis warning IL3050: Benchmarks.Startup.ConfigureServices(IServiceCollection): Using member 'Microsoft.Extensions.Configuration.ConfigurationBinder.Get<AppSettings>(IConfiguration)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. Binding strongly typed objects to configuration values requires generating dynamic code at runtime, for example instantiating generic types.
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Hosting.dll: warning IL3053: Assembly 'Microsoft.AspNetCore.Hosting' produced AOT analysis warnings.
C:\git\benchmarks\src\Benchmarks\Middleware\JsonMiddleware.cs(56): Trim analysis warning IL2026: Benchmarks.Middleware.JsonMiddleware.Invoke(HttpContext): Using member 'System.Text.Json.JsonSerializer.SerializeAsync<JsonMessage>(Stream,JsonMessage,JsonSerializerOptions,CancellationToken)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. JSON serialization and deserialization might require types that cannot be statically analyzed. Use the overload that takes a JsonTypeInfo or JsonSerializerContext, or make sure all of the required types are preserved.
C:\git\benchmarks\src\Benchmarks\Middleware\JsonMiddleware.cs(56): AOT analysis warning IL3050: Benchmarks.Middleware.JsonMiddleware.Invoke(HttpContext): Using member 'System.Text.Json.JsonSerializer.SerializeAsync<JsonMessage>(Stream,JsonMessage,JsonSerializerOptions,CancellationToken)' which has 'RequiresDynamicCodeAttribute' can break functionality when AOT compiling. JSON serialization and deserialization might require types that cannot be statically analyzed and might need runtime code generation. Use System.Text.Json source generation for native AOT applications.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton<IConfigureOptions`1<JsonConsoleFormatterOptions>,ConsoleLoggerFormatterConfigureOptions`2<JsonConsoleFormatter,JsonConsoleFormatterOptions>>(): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2<JsonConsoleFormatter,JsonConsoleFormatterOptions>.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe<IConfigureOptions`1<JsonConsoleFormatterOptions>,ConsoleLoggerFormatterConfigureOptions`2<JsonConsoleFormatter,JsonConsoleFormatterOptions>>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2<JsonConsoleFormatter,JsonConsoleFormatterOptions>.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton<IConfigureOptions`1<ConsoleFormatterOptions>,ConsoleLoggerFormatterConfigureOptions`2<SystemdConsoleFormatter,ConsoleFormatterOptions>>(): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2<SystemdConsoleFormatter,ConsoleFormatterOptions>.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe<IConfigureOptions`1<ConsoleFormatterOptions>,ConsoleLoggerFormatterConfigureOptions`2<SystemdConsoleFormatter,ConsoleFormatterOptions>>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2<SystemdConsoleFormatter,ConsoleFormatterOptions>.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton<IConfigureOptions`1<SimpleConsoleFormatterOptions>,ConsoleLoggerFormatterConfigureOptions`2<SimpleConsoleFormatter,SimpleConsoleFormatterOptions>>(): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2<SimpleConsoleFormatter,SimpleConsoleFormatterOptions>.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe<IConfigureOptions`1<SimpleConsoleFormatterOptions>,ConsoleLoggerFormatterConfigureOptions`2<SimpleConsoleFormatter,SimpleConsoleFormatterOptions>>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.ConsoleLoggerFormatterConfigureOptions`2<SimpleConsoleFormatter,SimpleConsoleFormatterOptions>.ConsoleLoggerFormatterConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Singleton<IConfigureOptions`1<ConsoleLoggerOptions>,LoggerProviderConfigureOptions`2<ConsoleLoggerOptions,ConsoleLoggerProvider>>(): Using member 'Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigureOptions`2<ConsoleLoggerOptions,ConsoleLoggerProvider>.LoggerProviderConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
ILC: Trim analysis warning IL2026: Microsoft.Extensions.DependencyInjection.ServiceDescriptor.Describe<IConfigureOptions`1<ConsoleLoggerOptions>,LoggerProviderConfigureOptions`2<ConsoleLoggerOptions,ConsoleLoggerProvider>>(ServiceLifetime): Using member 'Microsoft.Extensions.Logging.Configuration.LoggerProviderConfigureOptions`2<ConsoleLoggerOptions,ConsoleLoggerProvider>.LoggerProviderConfigureOptions`2(ILoggerProviderConfiguration`1<ConsoleLoggerProvider>)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. TOptions's dependent types may have their members trimmed. Ensure all required members are preserved.
C:\Users\eerhardt\.nuget\packages\microsoft.data.sqlite.core\6.0.0\lib\net6.0\Microsoft.Data.Sqlite.dll: warning IL2104: Assembly 'Microsoft.Data.Sqlite' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.entityframeworkcore\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.dll: warning IL2104: Assembly 'Microsoft.EntityFrameworkCore' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Core.dll: warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.Core' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.data.sqlclient\4.0.0\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll: warning IL2104: Assembly 'Microsoft.Data.SqlClient' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.entityframeworkcore\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.dll: warning IL3053: Assembly 'Microsoft.EntityFrameworkCore' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Core.dll: warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.Core' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\newtonsoft.json\12.0.2\lib\netstandard2.0\Newtonsoft.Json.dll: warning IL2104: Assembly 'Newtonsoft.Json' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\newtonsoft.json\12.0.2\lib\netstandard2.0\Newtonsoft.Json.dll: warning IL3053: Assembly 'Newtonsoft.Json' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Linq.Expressions.dll: warning IL3053: Assembly 'System.Linq.Expressions' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.entityframeworkcore.relational\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.Relational.dll: warning IL2104: Assembly 'Microsoft.EntityFrameworkCore.Relational' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll: warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.ViewFeatures' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Abstractions.dll: warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.Abstractions' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Abstractions.dll: warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.Abstractions' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\dapper\2.0.30\lib\netstandard2.0\Dapper.dll: warning IL2104: Assembly 'Dapper' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\dapper\2.0.30\lib\netstandard2.0\Dapper.dll: warning IL3053: Assembly 'Dapper' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\npgsql\6.0.0\lib\net6.0\Npgsql.dll: warning IL3053: Assembly 'Npgsql' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.entityframeworkcore.relational\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.Relational.dll: warning IL3053: Assembly 'Microsoft.EntityFrameworkCore.Relational' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\npgsql.entityframeworkcore.postgresql\6.0.0\lib\net6.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll: warning IL3053: Assembly 'Npgsql.EntityFrameworkCore.PostgreSQL' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.entityframeworkcore.sqlserver\6.0.0\lib\net6.0\Microsoft.EntityFrameworkCore.SqlServer.dll: warning IL3053: Assembly 'Microsoft.EntityFrameworkCore.SqlServer' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.mvc.newtonsoftjson\3.0.0\lib\netcoreapp3.0\Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll: warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.mvc.newtonsoftjson\3.0.0\lib\netcoreapp3.0\Microsoft.AspNetCore.Mvc.NewtonsoftJson.dll: warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.NewtonsoftJson' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\system.configuration.configurationmanager\5.0.0\lib\netstandard2.0\System.Configuration.ConfigurationManager.dll: warning IL2104: Assembly 'System.Configuration.ConfigurationManager' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.data.sqlclient\4.0.0\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.dll: warning IL3053: Assembly 'Microsoft.Data.SqlClient' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\npgsql.entityframeworkcore.postgresql\6.0.0\lib\net6.0\Npgsql.EntityFrameworkCore.PostgreSQL.dll: warning IL2104: Assembly 'Npgsql.EntityFrameworkCore.PostgreSQL' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.DataAnnotations.dll: warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.DataAnnotations' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.identitymodel.tokens\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Tokens.dll: warning IL2104: Assembly 'Microsoft.IdentityModel.Tokens' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\Microsoft.CSharp.dll: warning IL3053: Assembly 'Microsoft.CSharp' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.identitymodel.tokens\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Tokens.dll: warning IL3053: Assembly 'Microsoft.IdentityModel.Tokens' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.identitymodel.logging\6.8.0\lib\netstandard2.0\Microsoft.IdentityModel.Logging.dll: warning IL2104: Assembly 'Microsoft.IdentityModel.Logging' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
/_/src/libraries/System.Data.Common/src/System/Data/DataSet.cs(3519): Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter): Using member 'System.Data.DataSet.WriteXmlInternal(XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataSet.WriteXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly.
/_/src/libraries/System.Data.Common/src/System/Data/DataTable.cs(6718): Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter): Using member 'System.Data.DataTable.WriteXmlInternal(XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataTable.WriteXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly.
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Razor.dll: warning IL2104: Assembly 'Microsoft.AspNetCore.Mvc.Razor' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.ViewFeatures.dll: warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.ViewFeatures' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Private.Xml.dll: warning IL3053: Assembly 'System.Private.Xml' produced AOT analysis warnings.
ILC: Trim analysis warning IL2026: System.Security.Cryptography.Xml.CryptoHelpers.CreateFromName<T>(String): Using member 'System.Security.Cryptography.CryptoConfig.CreateFromName(String)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. The default algorithm implementations might be removed, use strong type references like 'RSA.Create()' instead.
C:\Users\eerhardt\.nuget\packages\azure.identity\1.3.0\lib\netstandard2.0\Azure.Identity.dll: warning IL2104: Assembly 'Azure.Identity' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\azure.core\1.6.0\lib\netstandard2.0\Azure.Core.dll: warning IL2104: Assembly 'Azure.Core' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
/_/src/libraries/System.Data.Common/src/System/Data/DataSet.cs(3497): Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader): Using member 'System.Data.DataSet.ReadXmlSerializableInternal(XmlReader)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataSet.ReadXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly.
/_/src/libraries/System.Data.Common/src/System/Data/DataTable.cs(6700): Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader): Using member 'System.Data.DataTable.ReadXmlSerializableInternal(XmlReader)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataTable.ReadXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly.
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\System.Security.Cryptography.Xml.dll: warning IL2104: Assembly 'System.Security.Cryptography.Xml' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
/_/src/libraries/System.Data.Common/src/System/Data/DataSet.cs(3463): Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.GetSchema(): Using member 'System.Data.DataSet.WriteXmlSchema(DataSet,XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataSet.GetSchema uses TypeDescriptor and XmlSerialization underneath which are not trimming safe. Members from serialized types may be trimmed if not referenced directly.
/_/src/libraries/System.Data.Common/src/System/Data/DataTable.cs(6664): Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.GetSchema(): Using member 'System.Data.DataTable.GetXmlSchema()' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. DataTable.GetSchema uses TypeDescriptor and XmlSerialization underneath which are not trimming safe. Members from serialized types may be trimmed if not referenced directly.
/_/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs(34): Trim analysis warning IL2026: System.Xml.Serialization.ReflectionXmlSerializationReader..cctor(): Using member 'System.Xml.Serialization.TypeScope.GetTypeDesc(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. calls GetTypeDesc.
/_/src/libraries/System.Private.Xml/src/System/Xml/Serialization/ReflectionXmlSerializationReader.cs(35): Trim analysis warning IL2026: System.Xml.Serialization.ReflectionXmlSerializationReader..cctor(): Using member 'System.Xml.Serialization.TypeScope.GetTypeDesc(Type)' which has 'RequiresUnreferencedCodeAttribute' can break functionality when trimming application code. calls GetTypeDesc.
C:\Users\eerhardt\.nuget\packages\runtime.win-x64.microsoft.dotnet.ilcompiler\8.0.0-alpha.1.23058.2\framework\System.Private.DataContractSerialization.dll: warning IL3053: Assembly 'System.Private.DataContractSerialization' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.identity.client\4.22.0\lib\netcoreapp2.1\Microsoft.Identity.Client.dll: warning IL2104: Assembly 'Microsoft.Identity.Client' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries
C:\Users\eerhardt\.nuget\packages\microsoft.aspnetcore.app.runtime.win-x64\8.0.0-alpha.1.23058.7\runtimes\win-x64\lib\net8.0\Microsoft.AspNetCore.Mvc.Razor.dll: warning IL3053: Assembly 'Microsoft.AspNetCore.Mvc.Razor' produced AOT analysis warnings.
C:\Users\eerhardt\.nuget\packages\microsoft.identity.client\4.22.0\lib\netcoreapp2.1\Microsoft.Identity.Client.dll: warning IL3053: Assembly 'Microsoft.Identity.Client' produced AOT analysis warnings.
eerhardt commented 1 year ago

Also linking https://github.com/npgsql/npgsql/issues/4799 here. Which is for reducing the size of Npsql under NativeAOT.

MichalStrehovsky commented 1 year ago

I spot checked where the compiler is spending time. I didn't see anything pathological. The app is just huge. The object file is 700 MB.

I ran it with <IlcGenerateMapFile>true</IlcGenerateMapFile> and spot checked the generated Benchmarks.map.xml.

One thing that stands out is many instantiations involving NpgSqlRange:

Just a random sample:

__GenericDict_S_P_CoreLib_System_Runtime_CompilerServices_AsyncTaskMethodBuilder__AwaitUnsafeOnCompleted<S_P_CoreLib_System_Runtime_CompilerServices_TaskAwaiter__Npgsql_Npgsql_Internal_TypeHandlers_MultirangeHandler_1__WriteMultirange_d__13_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<Npgsql_NpgsqlTypes_NpgsqlLogSequenceNumber>>>>>>____Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<Npgsql_NpgsqlTypes_NpgsqlLogSequenceNumber>>>>>>>>
__GenericDict_S_P_CoreLib_System_Runtime_CompilerServices_AsyncTaskMethodBuilder_1<S_P_CoreLib_System_Collections_Generic_List_1<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<Npgsql_NpgsqlTypes_NpgsqlLine>>>>>>>__AwaitUnsafeOnCompleted_1<S_P_CoreLib_System_Runtime_CompilerServices_TaskAwaiter>
__writableDataS_P_CoreLib_System_Threading_Tasks_Sources_IValueTaskSource_1<S_P_CoreLib_System_Collections_Generic_List_1<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<S_P_CoreLib_System_DBNull>>>>>>>
__fatpointer_S_P_CoreLib_System_Runtime_CompilerServices_AsyncTaskMethodBuilder_1_AsyncStateMachineBox_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<Int64>>>>>>>>__Npgsql_Npgsql_Internal_TypeHandling_NpgsqlTypeHandler__Read_d__4_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<__Array<Npgsql_NpgsqlTypes_NpgsqlRange_1<Int64>>>>>>>>>>__ExecutionContextCallback

There is still a generic cycle in Npgsql that is probably contributing to this but we no longer need to abort compiling stuff due to the cycle getting too deep (so there are no messages). But the cycle probably contributes to the expansion. These generics are getting pretty deep.

The cycle(s) involve(s):

NpgSqlTypeHandler<>
MultiRangeHandler<>
MultiRangeHandler<>.ReadMultirangeArray<>
MultiRangeHandler<>.ReadMultirangeList<>
MultiRangeHandler<>.WriteMultirange<>
MichalStrehovsky commented 1 year ago

(so there are no messages)

Bah I was wrong. The messages are there. They just get folded into the single "NpgSql is not compatible with AOT" warning. one <TrimmerSingleWarn>false</TrimmerSingleWarn> later, there's a bunch of these:

AOT analysis warning IL3054: Npgsql.Internal.TypeHandlers.MultirangeHandler`1<NpgsqlRange`1<NpgsqlTid>[]>.ReadMul
tirangeArray<NpgsqlRange`1<NpgsqlTid>[]>(NpgsqlReadBuffer,Int32,Boolean,FieldDescription): Generic expansion to 'System
.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1<NpgsqlRange`1<NpgsqlRange`1<NpgsqlTid>[]>[]>.Start<<ReadMultira
ngeArray>d__5`1<NpgsqlRange`1<NpgsqlTid>[],NpgsqlRange`1<NpgsqlTid>[]>>(<ReadMultirangeArray>d__5`1<NpgsqlRange`1<Npgsq
lTid>[],NpgsqlRange`1<NpgsqlTid>[]>&)' was aborted due to generic recursion. An exception will be thrown at runtime if
this codepath is ever reached. Generic recursion also negatively affects compilation speed and the size of the compilat
ion output. It is advisable to remove the source of the generic recursion by restructuring the program around the sourc
e of recursion. The source of generic recursion might include: 'Npgsql.Internal.TypeHandling.NpgsqlTypeHandler`1', 'Npg
sql.Internal.TypeHandlers.MultirangeHandler`1', 'Npgsql.Internal.TypeHandlers.MultirangeHandler`1.<ReadMultirangeArray>
d__5`1', 'Npgsql.Internal.TypeHandlers.MultirangeHandler`1.<ReadMultirangeList>d__7`1', 'Npgsql.Internal.TypeHandlers.M
ultirangeHandler`1.<WriteMultirange>d__13`1'
eerhardt commented 1 year ago

The messages are there. They just get folded into the single "NpgSql is not compatible with AOT" warning.

Is that correct/expected behavior? These messages aren't warnings, and they seem different than "normal" AOT warnings. So why should they get folded into the single warning?

MichalStrehovsky commented 1 year ago

The messages are there. They just get folded into the single "NpgSql is not compatible with AOT" warning.

Is that correct/expected behavior? These messages aren't warnings, and they seem different than "normal" AOT warnings. So why should they get folded into the single warning?

It feels the category is the same - it's code that is fine when one is JIT or interpreter based, but can be problematic with AOT (it may throw exceptions at runtime and as a side effect also makes things bigger/slower to compiler). It's an AOT warning.