ルート フォルダー内のツール マニフェスト
.NET では、 DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
環境変数でオーバーライドしない限り、Windows のルート フォルダー内のローカル ツール マニフェスト ファイルを検索しなくなりました。 この変更は Linux または macOS には影響しません。
以前の動作
以前は、.NET SDK ローカル ツールは、ツール マニフェストを検索するときに、すべてのプラットフォームのルート フォルダーをチェックしていました。 検索は、マニフェストが見つかるまで、現在のディレクトリからディレクトリ ツリーの上位に向かってルート フォルダーまで続いていました。 各レベルでは、.NET は dotnet-tools.json という名前のツール マニフェストを、.config サブフォルダー内で検索します。 Windows システムでは、他にツール マニフェストが見つからなかった場合、SDK は最終的に C:\.config\dotnet-tools.json でツール マニフェストを検索していました。
新しい動作
.NET は、DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
環境変数を使用してオーバーライドしない限り、Windows では、既定で現在のディレクトリ ツリーのルート フォルダー内を検索しなくなりました。 既定では、DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
は false
に設定されています。
導入されたバージョン
- .NET SDK 7.0.3xx
- .NET SDK 7.0.1xx
- .NET SDK 6.0.4xx
- .NET SDK 6.0.3xx
- .NET SDK 6.0.1xx
- .NET SDK 3.1.4xx
破壊的変更の種類
この変更は、動作変更です。
変更理由
この変更は、セキュリティ上の問題に対処するために行われました。 すべてのユーザーが Windows の C:\ ディレクトリにファイルとフォルダーを作成できるため、特権の低い攻撃者が C:\.config\dotnet-tools.json ファイルをハイジャックする可能性があります。 管理者が dotnet
ツール コマンドを実行すると、このツールが、ファイルから悪意のある構成情報を読み取り、悪意のあるツールをダウンロードして実行する可能性があります。
推奨アクション
新しい動作を無効にするには、DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT
環境変数を true
または 1
に設定します。
関連項目
.NET