dotnet-aot-analysis
1
总安装量
1
周安装量
#49367
全站排名
安装命令
npx skills add https://github.com/im5tu/dotnet-skills --skill dotnet-aot-analysis
Agent 安装分布
claude-code
1
Skill 文档
Analyze and configure a .NET project or solution for Native AOT compatibility, applying source generators and AOT settings.
When to Use
- User wants to enable Native AOT
- User wants to check AOT compatibility
- User wants to optimize for AOT deployment
Workflow
Step 1: Ask Scope
Ask user: Solution-wide or Specific project(s)?
Step 2: Detect Project Types
For each project:
- Check for ASP.NET Core (
Microsoft.AspNetCorerefs,WebApplication,CreateBuilder) - Check for Blazor Server (
Microsoft.AspNetCore.Components.Server) - Check for MVC (
AddControllersWithViews,AddMvc)
Step 3: Warn About Unsupported Scenarios
| Scenario | Documentation |
|---|---|
| Blazor Server | https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot |
| MVC | https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot |
| Session state | https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot |
| SPA middleware | https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot |
Ask user: Continue with compatible projects or abort?
Step 4: Invoke Sub-Skills
For each compatible project, invoke:
dotnet-source-gen-json– JSON serialization AOT readiness (includes polymorphic types)dotnet-source-gen-options-validation– Options pattern AOT readinessdotnet-source-gen-regex– Regex AOT readinessdotnet-source-gen-logging– Logging AOT readiness
Step 5: Configure AOT Settings
If solution-wide:
Check for src/Directory.Build.props, otherwise use solution root. Add/merge:
<Project>
<PropertyGroup>
<!-- Advisory flag for tooling/analyzers; does not make code AOT-compatible -->
<IsAotCompatible>true</IsAotCompatible>
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
<EnableSingleFileAnalyzer>true</EnableSingleFileAnalyzer>
<EnableAotAnalyzer>true</EnableAotAnalyzer>
</PropertyGroup>
</Project>
If project-specific:
Add to each .csproj:
<PropertyGroup>
<PublishAot>true</PublishAot>
</PropertyGroup>
Step 6: ASP.NET Core Specific
For ASP.NET Core projects:
- Recommend
CreateSlimBuilder()overCreateBuilder() - Enable Request Delegate Generator (RDG) for Minimal APIs:
<PropertyGroup> <EnableRequestDelegateGenerator>true</EnableRequestDelegateGenerator> </PropertyGroup> - System.Text.Json: Handled by
dotnet-source-gen-jsonskill - Warn about HTTPS/HTTP3 if needed (not included in
CreateSlimBuilder) - Ask user if they want to see generated code. If so, add
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
Step 7: Verify
Run dotnet build and check for AOT warnings.
Key Documentation Links
| Topic | URL |
|---|---|
| Native AOT Overview | https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot |
| ASP.NET Core AOT | https://learn.microsoft.com/en-us/aspnet/core/fundamentals/native-aot |
| Request Delegate Generator | https://learn.microsoft.com/en-us/aspnet/core/fundamentals/aot/request-delegate-generator/rdg |
| AOT Limitations | https://learn.microsoft.com/en-us/dotnet/core/deploying/native-aot/?tabs=windows#limitations-of-native-aot-deployment |
| Trimming Libraries | https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming |
Notes
- Requires .NET 7+ (ASP.NET Core support requires .NET 8+)
- ASP.NET Core: Use
CreateSlimBuilder()for optimal size - Minimal APIs: Enable Request Delegate Generator (RDG) for optimal AOT performance
- Eliminate runtime reflection from hot paths; use source generators where reflection would otherwise be required
- System.Text.Json: Register all types in
JsonSerializerContext