dnxスクリプトとdnx.cmd スクリプトでは、.NET マルチプレクサーを使用して SDK のバージョンを選択しなくなりました。 代わりに、インストールされている最新の SDK を見つけて直接呼び出し、作業ディレクトリ内の global.json ファイルをバイパスします。
導入されたバージョン
.NET 10 SDK 10.0.302、10.0.400、.NET 11 Preview 6
以前の動作
以前は、dnx スクリプトによってdotnet dnxが呼び出されました。これは、.NET マルチプレクサーに依存して、作業ディレクトリ内の任意のglobal.json ファイルに基づいて SDK バージョンを選択していました。
global.json .NET 10 より前の SDK バージョンを固定していた場合、スクリプトは次のエラーが表示されて失敗しました。
Unrecognized command or argument 'execute'
.NET 10 SDK 10.0.302 (以降) および .NET 11 Preview 6 以降では、dnxおよびdnx.cmdスクリプトはdotnet --list-sdksを使用して、インストールされている最新の SDK を識別します。 その後、dotnet exec <sdk-path>/dotnet.dll dnxを直接呼び出し、.NET マルチプレクサーと global.json SDK ピン留めをバイパスします。
破壊的変更の種類
この変更は 動作の変更です。
変更理由
dnxを含む一部の.NET CLI コマンドは、常に最新のインストール済み SDK で実行する必要があるバージョンに依存しない機能と見なされます。
global.jsonに依存することは、ビルドに影響を与える変更によるリスクを軽減するために古い SDK バージョンをピン留めしたユーザーも、誤ってdnxを壊したことを意味します。 .NET 10 SDK がピン留めされたフォルダーでは、dnx コマンドを使用できなかったため、混乱を招くエラーが発生し、場合によっては、Copilot CLI などのツールでタイムアウトが発生しました。
推奨されるアクション
.NET muxer と global.json が SDK の選択を制御する従来の動作に戻すには、dnx スクリプトの代わりに dotnet dnx を明示的に実行してください。
影響を受ける API
なし。
.NET