Polecenie "dotnet restore" powoduje wygenerowanie ostrzeżeń o lukach w zabezpieczeniach
Poleceniedotnet restore
, które przywraca zależności i narzędzia projektu, domyślnie generuje ostrzeżenia dotyczące luk w zabezpieczeniach.
Poprzednie zachowanie
dotnet restore
Wcześniej nie emitował żadnych ostrzeżeń dotyczących luk w zabezpieczeniach domyślnie.
Nowe zachowanie
Jeśli programujesz przy użyciu zestawu .NET 8 SDK lub nowszej wersji, dotnet restore
domyślnie generuje ostrzeżenia dotyczące luk w zabezpieczeniach dla wszystkich przywróconych projektów. Jeśli załadujesz rozwiązanie lub projekt albo uruchomisz skrypt ciągłej integracji/ciągłego wdrażania, ta zmiana może spowodować przerwanie przepływu pracy, jeśli został <TreatWarningsAsErrors>
włączony.
Wprowadzona wersja
.NET 8 (wersja zapoznawcza 4)
Typ zmiany powodującej niezgodność
Ta zmiana jest zmianą behawioralną.
Przyczyna wprowadzenia zmiany
Wielu użytkowników chce wiedzieć, czy przywracane pakiety zawierają znane luki w zabezpieczeniach. Ta funkcja była bardzo żądaną funkcją. Obawy dotyczące zabezpieczeń nadal rosną każdego roku, a niektóre znane problemy z zabezpieczeniami nie są wystarczająco widoczne, aby podjąć natychmiastowe działania.
Zalecana akcja
Właściwości wymienione w zalecanych akcjach można ustawić w pliku projektu (na przykład *.csproj lub *.fsproj) lub Directory.Build.props pliku.
Aby jawnie zmniejszyć prawdopodobieństwo wystąpienia awarii kompilacji z powodu ostrzeżeń, możesz rozważyć użycie
<TreatWarningsAsErrors>
i ustawić<WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors>
, aby zapewnić, że znane luki w zabezpieczeniach są nadal dozwolone w danym środowisku.<PropertyGroup> ... <TreatWarningsAsErrors>true</TreatWarningsAsErrors> <WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904</WarningsNotAsErrors> </PropertyGroup>
Jeśli chcesz ustawić inny poziom inspekcji zabezpieczeń, dodaj
<NuGetAuditLevel>
właściwość do pliku projektu z możliwymilow
wartościami , ,moderate
high
icritical
.<PropertyGroup> ... <NuGetAuditLevel>low</NuGetAuditLevel> </PropertyGroup>
Jeśli chcesz zignorować te ostrzeżenia, możesz pominąć
<NoWarn>
NU1901-NU1904
ostrzeżenia.<PropertyGroup> ... <NoWarn>$(NoWarn);NU1901-NU1904</NoWarn> </PropertyGroup>
Aby całkowicie wyłączyć nowe zachowanie, możesz ustawić
<NuGetAudit>
właściwość projektu nafalse
wartość .<PropertyGroup> ... <NuGetAudit>false</NuGetAudit> </PropertyGroup>