Die Wiederherstellung durchsucht nicht den globalen Paketordner nach einer höheren Paketversion.

Wenn ein PackageReference oder eine Paketabhängigkeit eine nicht vorhandene Paketversion anfordert, sucht NuGet-Restore nach der niedrigsten Version, die höher ist als die angeforderte Version. Beim NuGet-Restore werden die Versionen im globalen Paketordner bei dieser Suche nicht mehr berücksichtigt.

Eingeführt in Version

.NET 11 RC 1

Bisheriges Verhalten

Wenn die wiederherstellung die angeforderte Version nicht finden konnte, durchsuchte sie sowohl die Paketquellen als auch den globalen Paketordner nach der "nächsten besten" Version, d. h. die niedrigste Version, die höher als die angeforderte Version ist. Die Wiederherstellung hat diese Version ausgewählt und eine Warnung vom Typ NU1603 ausgelöst. Wenn keine höhere Version gefunden wurde, meldete die Wiederherstellung einen NU1102-Fehler.

Paketquelle Ordner für globale Pakete Angeforderte Version Version ausgewählt Ergebnis wiederherstellen
1.0.0, 2.0.0 1.5.0 1.1.0 1.5.0 NU1603-Warnung
1.0.0 1.5.0 1.1.0 1.5.0 NU1603-Warnung

Neues Verhalten

Ab .NET 11 durchsucht die Wiederherstellung nur die Paketquellen nach der „nächstbesten“ Version. Da der globale Paketordner von der Suche ausgeschlossen ist, kann die Wiederherstellung eine höhere Version als zuvor auswählen oder einen NU1102-Fehler verursachen, wenn keine Paketquelle eine höhere Version aufweist.

Paketquelle Ordner für globale Pakete Angeforderte Version Version ausgewählt Ergebnis wiederherstellen
1.0.0, 2.0.0 1.5.0 1.1.0 2.0.0 NU1603-Warnung
1.0.0 1.5.0 1.1.0 n. z. NU1102-Fehler

Wenn der globale Paketordner die genaue angeforderte Version enthält, verwendet die Wiederherstellung diese Version, auch wenn keine Paketquelle über diese Version verfügt. Dieses Verhalten hat sich nicht geändert.

Art der einschneidenden Änderung

Diese Änderung kann sich auf die Quellkompatibilität auswirken.

Grund für die Änderung

Die Wiederherstellung ist jetzt deterministischer und wiederholbarer. Aus Leistungsgründen überprüft NuGet nicht, dass Pakete im globalen Paketordner den Paketen in den Paketquellen entsprechen. Wiederherstellen wählt jetzt jedoch dieselbe Paketversion auf verschiedenen Computern aus, auf denen der ordner "globale Pakete" möglicherweise unterschiedliche Versionen enthält.

Verweisen Sie nur auf Paketversionen, die in Ihren Paketquellen vorhanden sind. Diese Vorgehensweise stellt sicher, dass sich die während der Wiederherstellung ausgewählte Version im Laufe der Zeit nicht ändert, wenn neue Versionen in den Paketquellen veröffentlicht werden.

Weitere Informationen finden Sie unter Bewährte Methoden für eine sichere Software-Lieferkette.

Betroffene APIs

None.