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

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

導入されたバージョン

.NET 11

以前の動作

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

新しい動作

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

破壊的変更の種類

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

変更理由

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

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

影響を受ける API

None.