用途:分析并配置 .NET 项目或解决方案,使其兼容 Native AOT,应用源生成器与 AOT 设置。适用于用户想启用 Native AOT、检查 AOT 兼容性或优化 AOT 部署时。
主要能力与流程:先询问范围(整个解决方案或特定项目);检测项目类型(ASP.NET Core、Blazor Server、MVC);对 Blazor Server、MVC、会话状态、SPA 中间件等不支持场景给出警告并询问是否继续;对兼容项目调用子技能:dotnet-source-gen-json(JSON 序列化 AOT 就绪,含多态类型)、dotnet-source-gen-options-validation(Options 模式)、dotnet-source-gen-regex(正则)、dotnet-source-gen-logging(日志)。
配置方式:解决方案级时在 src/Directory.Build.props 或解决方案根添加 IsAotCompatible、EnableTrimAnalyzer、EnableSingleFileAnalyzer、EnableAotAnalyzer;项目级时在各 .csproj 添加 PublishAot。ASP.NET Core 项目建议用 CreateSlimBuilder() 替代 CreateBuilder(),为 Minimal API 启用 EnableRequestDelegateGenerator,必要时提示 HTTPS/HTTP3 不在 CreateSlimBuilder 中,并可按需添加 EmitCompilerGeneratedFiles。最后运行 dotnet build 检查 AOT 警告。
限制:需要 .NET 7+,ASP.NET Core 支持需 .NET 8+;IsAotCompatible 仅为工具/分析器提示标志,不会使代码自动兼容 AOT;需消除热路径运行时反射,System.Text.Json 需在 JsonSerializerContext 注册所有类型。官方文档链接见资料。