プロジェクトの依存関係とツールを復元するdotnet restore
コマンドによって、デフォルトでセキュリティ脆弱性の警告が生成されるようになりました。
以前の動作
以前は、dotnet restore
ではセキュリティの脆弱性に関する警告はデフォルトで出力されませんでした。
新しい動作
.NET 8 SDK 以降のバージョンで開発している場合は、dotnet restore
では復元されたすべてのプロジェクトに対してデフォルトでセキュリティ脆弱性の警告が生成されます。 ソリューションまたはプロジェクトを読み込んだり、CI/CD スクリプトを実行する際に、<TreatWarningsAsErrors>
を有効にしていると、この変更によってワークフローが中断される可能性があります。
導入されたバージョン
.NET 8 Preview 4
破壊的変更の種類
この変更は、動作変更です。
変更理由
多くのユーザーは、復元するパッケージに何らかの既知のセキュリティ上の脆弱性が含まれているかどうかを知りたいと考えています。 この機能は非常に需要のある機能となっていました。 セキュリティ上の懸念は毎年増加し続けており、一部の既知のセキュリティの問題はわかりづらいため、すぐに対処することができません。
推奨される操作
推奨されるアクションに記載されているプロパティは、プロジェクト ファイル (*.csproj や *.fsproj ファイルなど) または directory.Build.props ファイル 設定できます。
警告が原因でビルドが破損する可能性を明示的に減らすために、
<TreatWarningsAsErrors>
の使用を検討し、<WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
を設定して、既知のセキュリティ脆弱性が環境内で引き続き許可されるようにすることができます。<PropertyGroup> ... <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> </PropertyGroup>
別のセキュリティ監査レベルを設定する場合は、
<NuGetAuditLevel>
プロパティをプロジェクト ファイルに追加し、使用可能な値low
、moderate
、high
、critical
を指定します。<PropertyGroup> ... <NuGetAuditLevel>low</NuGetAuditLevel> </PropertyGroup>
これらの警告を無視する場合は、
<NoWarn>
を使用してNU1901-NU1904
警告を抑制できます。<PropertyGroup> ... <NoWarn>$(NoWarn);NU1901-NU1904</NoWarn> </PropertyGroup>
新しい動作を完全に無効にするには、
<NuGetAudit>
プロジェクト プロパティをfalse
に設定できます。<PropertyGroup> ... <NuGetAudit>false</NuGetAudit> </PropertyGroup>
関連項目
.NET