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