You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Verify the ahead-of-time compiled dotnet CLI entry point #96
Verified on 2026-10-10 against SDK 11.0.100-rc.1.26425.128 on Windows x64, with host tracing (COREHOST_TRACE). That SDK is the one the repository's global.json pins.
Note: the analysis cited above, Documentation/DotNet11-CSharp15-Impact.md, does not exist in any branch of postsharp/PostSharp. These findings are recorded here instead.
What the .NET 11 SDK changes (measured)
The SDK directory ships dotnet-aot.dll, a native library. It sits beside the managed dotnet.dll, dotnet.deps.json and dotnet.runtimeconfig.json, which are all still present.
The host loads dotnet-aot.dll ("Using AOT-ed SDK") for --version, --info, restore, msbuild and tool commands.
For the MSBuild-based commands, it then initializes the managed sdk/dotnet.dll in the same process.
It starts a .NET tool as a child process: dotnet.exe <tool>.dll.
The host answers --list-sdks, --list-runtimes, exec and dotnet <app>.dll itself, without the SDK. These do not change.
dotnet --version with an empty DOTNET_CLI_HOME writes only the version to standard output. No first-run text appears.
I installed the local build 2027.0.3.1152 in a tool manifest:
dotnet postsharp --help, dotnet tool run postsharp -- --help, dotnet postsharp version and dotnet postsharp telemetry --help all work through the AOT front end.
The front end starts the tool as dotnet.exe …/PostSharp.Tool.dll. It runs on runtime 10.0.12 (RollForward=Major).
Exit codes match a direct dotnet PostSharp.Tool.dll: 0 on success, -1 for an unknown command.
The tool states its process kind (ProcessKind.DotNetTool) instead of detecting it from the process name. Running under dotnet.exe in a child process therefore changes nothing for Backstage.
I did not run shutdown, kill or cleanup: they would have stopped the build servers of the machine.
End to end (CI)
All develop/2027.0 builds since 2026-09-25 use the SDK 11 RC1 that global.json pins (#93).
ReleaseCheckMinimalQualityRequirements 343403 (ab0b774e3e) and 343485 (600bd383d2) passed.
The cells of ReleaseRunAllNet110Tests 343374 passed. These include Linux x64 and Linux ARM64 (CrossPlatform). They exercise the dependency restore, dotnet exec of the compiler, tool extraction and ReadyToRun on SDK 11.
In ReleaseCheckAllQualityRequirements 343404, two cells failed for reasons unrelated to the CLI: a macOS agent failed to start, and the PostSharp.Patterns.Model backward-compatibility check failed.
Inferred, not measured: I ran the host trace on Windows only. On Linux, the behaviour above is inferred from the green Linux cells.
Regression guard
postsharp/PostSharp#219 adds a test that runs NetCoreResolver against the installed CLI: --version, --list-sdks, --list-runtimes, and the runtime that dotnet.runtimeconfig.json selects. Until now, every resolver test faked the CLI. The new test passes locally against SDK 11 RC1.
Activity
gfraiteur commentedon Oct 10, 2026
Result: no defect found
Verified on 2026-10-10 against SDK
11.0.100-rc.1.26425.128on Windows x64, with host tracing (COREHOST_TRACE). That SDK is the one the repository'sglobal.jsonpins.Note: the analysis cited above,
Documentation/DotNet11-CSharp15-Impact.md, does not exist in any branch ofpostsharp/PostSharp. These findings are recorded here instead.What the .NET 11 SDK changes (measured)
dotnet-aot.dll, a native library. It sits beside the manageddotnet.dll,dotnet.deps.jsonanddotnet.runtimeconfig.json, which are all still present.dotnet-aot.dll("Using AOT-ed SDK") for--version,--info,restore,msbuildand tool commands.sdk/dotnet.dllin the same process.dotnet.exe <tool>.dll.--list-sdks,--list-runtimes,execanddotnet <app>.dllitself, without the SDK. These do not change.dotnet --versionwith an emptyDOTNET_CLI_HOMEwrites only the version to standard output. No first-run text appears.PostSharp call sites
BuildClientdotnet exec --roll-forward … PostSharp.Compiler.Hosting…dllNetCoreResolver--versionNetCoreResolver--list-sdks,--list-runtimesNetCoreResolver<sdk>/dotnet.runtimeconfig.jsonBuildToolsHelperdotnet --roll-forward-on-no-candidate-fx 2 Unzipper.dllBuildTimeDependencyRestorerdotnet restore(child process)NativeImageManagerdotnet msbuild(crossgen discovery)MemoryThrottlerdotnet build-server shutdown --vbcscompiler --razorThe
postsharp.NET tool (measured)I installed the local build
2027.0.3.1152in a tool manifest:dotnet postsharp --help,dotnet tool run postsharp -- --help,dotnet postsharp versionanddotnet postsharp telemetry --helpall work through the AOT front end.dotnet.exe …/PostSharp.Tool.dll. It runs on runtime 10.0.12 (RollForward=Major).dotnet PostSharp.Tool.dll: 0 on success, -1 for an unknown command.ProcessKind.DotNetTool) instead of detecting it from the process name. Running underdotnet.exein a child process therefore changes nothing for Backstage.shutdown,killorcleanup: they would have stopped the build servers of the machine.End to end (CI)
All
develop/2027.0builds since 2026-09-25 use the SDK 11 RC1 thatglobal.jsonpins (#93).ReleaseCheckMinimalQualityRequirements343403 (ab0b774e3e) and 343485 (600bd383d2) passed.ReleaseRunAllNet110Tests343374 passed. These include Linux x64 and Linux ARM64 (CrossPlatform). They exercise the dependency restore,dotnet execof the compiler, tool extraction and ReadyToRun on SDK 11.ReleaseCheckAllQualityRequirements343404, two cells failed for reasons unrelated to the CLI: a macOS agent failed to start, and thePostSharp.Patterns.Modelbackward-compatibility check failed.Inferred, not measured: I ran the host trace on Windows only. On Linux, the behaviour above is inferred from the green Linux cells.
Regression guard
postsharp/PostSharp#219 adds a test that runs
NetCoreResolveragainst the installed CLI:--version,--list-sdks,--list-runtimes, and the runtime thatdotnet.runtimeconfig.jsonselects. Until now, every resolver test faked the CLI. The new test passes locally against SDK 11 RC1.-- Claude for Gael
gfraiteur commentedon Oct 14, 2026
Released in PostSharp 2027.0.4-preview.
-- Claude for Gael