Opt out of optimization to fix optimization and trimming issues in NativeAOT

This commit is contained in:
2024-10-18 18:58:20 +02:00
parent 83822510f1
commit ac0e9efa77
3 changed files with 12 additions and 4 deletions
@@ -14,6 +14,7 @@ public static class Constants
public const string Default = "default";
public const string Namespace = "Net.Sdk.Web";
public const string UsingSystemThreading = "System.Threading";
public const string UsingSystemRuntimeCompilerServices = "System.Runtime.CompilerServices";
public const string UsingMicrosoftAspNetCoreHttp = "Microsoft.AspNetCore.Http";
public const string UsingMicrosoftAspNetCoreRouting = "Microsoft.AspNetCore.Routing";
public const string UsingMicrosoftAspNetCoreBuilder = "Microsoft.AspNetCore.Builder";
@@ -81,4 +82,7 @@ public static class Constants
public const string T = "T";
public const string IEndpointFilterName = "IEndpointFilter";
public const string MethodImplAttribute = "MethodImpl";
public const string MethodImplArgument = "MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization | MethodImplOptions.PreserveSig";
}
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<Version>0.8.19</Version>
<Version>0.8.20</Version>
<LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Authors>Alexandru Macocian</Authors>
@@ -20,7 +20,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="4.9.0" PrivateAssets="all" />
<PackageReference Include="Sybil" Version="0.8.3" PrivateAssets="all" />
<PackageReference Include="Sybil" Version="0.8.4" PrivateAssets="all" />
</ItemGroup>
<ItemGroup>
@@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Collections.Immutable;
using System.Diagnostics;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
namespace Net.Sdk.Web.Extensions.SourceGenerators;
@@ -72,7 +73,8 @@ public class UseRoutesGenerator : IIncrementalGenerator
.WithUsing(Constants.UsingMicrosoftAspNetCoreRouting)
.WithUsing(Constants.UsingMicrosoftAspNetCoreHttp)
.WithUsing(Constants.UsingMicrosoftAspNetCoreBuilder)
.WithUsing(Constants.UsingMicrosoftAspNetCoreMvc);
.WithUsing(Constants.UsingMicrosoftAspNetCoreMvc)
.WithUsing(Constants.UsingSystemRuntimeCompilerServices);
var routeUsings = new HashSet<string>();
@@ -83,7 +85,9 @@ public class UseRoutesGenerator : IIncrementalGenerator
namespaceBuilder.WithClass(webAppBuilder);
var useRoutesWebAppMethodBuilder = SyntaxBuilder.CreateMethod(Constants.WebApplicationTypeName, Constants.UseRoutesMethodName)
.WithThisParameter(Constants.WebApplicationTypeName, Constants.BuilderParameterName)
.WithModifiers($"{Constants.Public} {Constants.Static}");
.WithModifiers($"{Constants.Public} {Constants.Static}")
.WithAttribute(SyntaxBuilder.CreateAttribute(Constants.MethodImplAttribute)
.WithRawArgument(Constants.MethodImplArgument));
webAppBuilder.WithMethod(useRoutesWebAppMethodBuilder);
var useRoutesWebAppBody = new StringBuilder();