NativeAOT CLI コマンド処理が既定で有効になっている

.NET 11 以降では、.NET SDK CLI を使用すると、すべてのプラットフォームで NativeAOT コンパイル コマンド処理の高速パスが既定で有効になります。 このパスは、既定の変更が無効から有効に変わる DOTNET_CLI_ENABLEAOT 環境変数によって制御されます。 コマンドライン解析、--version--info、増え続ける組み込みコマンドと外部コマンドのセットなど、一般的なdotnet呼び出しは、処理されないものに対してマネージド CLI に透過的にフォールバックするネイティブ エントリ ポイントによって処理されます。

導入されたバージョン

.NET 11 Preview 7

以前の動作

以前は、NativeAOT CLI の高速パスは、すべてのプラットフォームで既定でオフでした。 DOTNET_CLI_ENABLEAOTが明示的に信頼できる値 (true1yes、またはon) に設定されていない限り、すべてのdotnet呼び出しはマネージド CLI によって処理されました。

新しい動作

.NET 11 以降、NativeAOT CLI の高速パスは、すべてのプラットフォーム (Windows、macOS、Linux) で既定でオンになっています。 サポートされているコマンドはネイティブに処理され、サポートされていないコマンドはすべてマネージド CLI に透過的にフォールバックします。 すべての呼び出しをオプトアウトしてマネージド CLI にルーティングするには、 DOTNET_CLI_ENABLEAOT を、 false0no、または offの無効な値に設定します。

破壊的変更の種類

この変更は 動作の変更です。

変更理由

ネイティブのコマンド処理パスがマネージド CLI と同等になったので、既定で有効にすると、広範な実世界テストが提供され、一般的なコマンドの CLI スタートアップ パフォーマンスが向上します。

ネイティブ パスは、マネージド CLI と動作が同じよう設計されており、アクションは必要ありません。 動作に違いがある場合は、すべての呼び出しをオプトアウトしてマネージド CLI にルーティングするように環境変数 DOTNET_CLI_ENABLEAOT=false (または 0no、または off) を設定します。 https://github.com/dotnet/sdk/issuesで差を報告します。

影響を受ける API

None.