NativeAOT CLI-Befehlsbehandlung standardmäßig aktiviert

Ab .NET 11 ermöglicht die .NET SDK CLI standardmäßig den schnellen Pfad der nativeNAOTOT-kompilierten Befehlsverarbeitung auf allen Plattformen. Dieser Pfad wird von der DOTNET_CLI_ENABLEAOT Umgebungsvariable gesteuert, deren Standardänderungen von deaktiviert in aktiviert werden. Häufige dotnet Aufrufe, z. B. Befehlszeilenanalyse, --version, --infound eine wachsende Gruppe von integrierten und externen Befehlen, werden von einem systemeigenen Einstiegspunkt behandelt, der transparent auf die verwaltete CLI zurückfällt, um alles zu erhalten, was nicht behandelt wird.

Eingeführt in Version

.NET 11 Vorschau 7

Bisheriges Verhalten

Zuvor war der schnelle Pfad der NativeAOT CLI auf allen Plattformen standardmäßig deaktiviert. Sofern nicht DOTNET_CLI_ENABLEAOT explizit auf einen Wahrheitswert (true, 1, yesoder on) festgelegt wurde, wurde jeder dotnet Aufruf von der verwalteten CLI behandelt.

Neues Verhalten

Ab .NET 11 ist der nativeAOT CLI-Schnellpfad standardmäßig auf allen Plattformen aktiviert (Windows, macOS und Linux). Unterstützte Befehle werden nativ behandelt, und alles, was nicht unterstützt wird, fällt transparent auf die verwaltete CLI zurück. Wenn Sie jeden Aufruf an die verwaltete CLI deaktivieren und weiterleiten möchten, legen Sie DOTNET_CLI_ENABLEAOT diesen auf einen gefälschten Wert fest: false, , 0, , nooder off.

Art der einschneidenden Änderung

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Nachdem der systemeigene Befehlsbehandlungspfad die Parität mit der verwalteten CLI erreicht hat, bietet die Aktivierung standardmäßig umfassende Praxistests und verbessert die CLI-Startleistung für allgemeine Befehle.

Der native Pfad ist so konzipiert, dass er verhaltensmäßig mit der verwalteten CLI identisch ist und keine Aktion erfordern sollte. Wenn Sie einen Unterschied im Verhalten beobachten, legen Sie die Umgebungsvariable DOTNET_CLI_ENABLEAOT=false (oder 0, nooder off) so fest, dass alle Aufrufe an die verwaltete CLI weitergeleitet werden. Melden Sie den Unterschied bei https://github.com/dotnet/sdk/issues.

Betroffene APIs

None.