Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der dotnet restore Befehl, mit dem die Abhängigkeiten eines Projekts wiederhergestellt werden, erzeugt jetzt Sicherheitsrisikowarnungen für transitive Pakete standardmäßig, wenn das Projekt auf .NET 10 oder eine höhere Version ausgerichtet ist.
Vorheriges Verhalten
NuGetAudit wurde in .NET 8 eingeführt, um Warnungen für Pakete mit bekannten Sicherheitsrisiken auszustrahlen.
Standardmäßig wurden nur direkte Paketverweise überwacht, es war jedoch möglich, die NuGetAuditMode Eigenschaft so zu ändern, dass sie alle Pakete enthält.
In einer Vorschauversion von .NET 9 wurde die Standardeinstellung von NuGetAuditMode für alle Projekte auf all geändert, und diese Änderung wurde in der .NET 9.0.101 SDK wieder auf direct zurückgesetzt.
Neues Verhalten
Wenn Projekte .NET 10 oder höher verwenden, wird NuGetAuditMode standardmäßig auf all gesetzt, wenn es nicht explizit festgelegt wurde.
Diese Einstellung sorgt dafür, dass transitive Pakete (Abhängigkeiten von Paketen, auf die Ihr Projekt direkt verweist) mit bekannten Sicherheitsrisiken nun Warnungen auslösen.
Wenn Ihr Projekt Warnungen als Fehler behandelt, kann dieses Verhalten zu Wiederherstellungsfehlern führen.
Wenn Ihr Projekt auf .NET 9 oder niedriger ausgerichtet ist, bleibt der Standardwert für NuGetAuditModedirect.
Eingeführte Version
.NET 10 Preview 3
Art der einschneidenden Änderung
Diese Änderung ist eine Verhaltensänderung.
Grund für Änderung
Pakete mit bekannten Sicherheitsrisiken können dazu führen, dass Ihre App ausgenutzt werden kann, auch wenn Ihr Projekt nicht direkt auf das anfällige Paket verweist oder direkt verwendet.
Empfohlene Aktion
Um zu verhindern, dass Überwachungswarnungen als Fehler behandelt werden, auch bei Verwendung
<TreatWarningsAsErrors>, können Sie verwenden<WarningsNotAsErrors>NU1901;NU1902;NU1903;NU1904;$(WarningsNotAsErrors)</WarningsNotAsErrors>.Verwenden Sie Tools wie
dotnet nuget why, um das Paket der obersten Ebene zu finden, das dazu führte, dass das transitive Paket mit der bekannten Schwachstelle eingeschlossen wurde, und versuchen Sie, es zu aktualisieren, um zu prüfen, ob die transitive Schwachstelle verschwindet. Wenn dies nicht der Fall ist, erheben Sie das transitive Paket zu einem Paket der obersten Ebene, indem Sie ihm einPackageReferencehinzufügen, und aktualisieren Sie es auf eine neuere Version.Wenn Sie eine bestimmte Empfehlung unterdrücken möchten, können Sie das Element
<NuGetAuditSuppress Include="url" />zu Ihrer Projektdatei hinzufügen, wobeiurldie URL ist, die in der Warnmeldung von NuGet genannt wird.<ItemGroup> <NuGetAuditSuppress Include="url" /> </ItemGroup>Wenn Sie nur vor direkten Paketverweisen mit bekannten Sicherheitsrisiken gewarnt werden möchten, können Sie
<NuGetAuditMode>in Ihrer Projektdatei aufdirectfestlegen.<PropertyGroup> <NuGetAuditMode>direct</NuGetAuditMode> </PropertyGroup>