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.
Das PrunePackageReference-Feature entfernt automatisch transitive Pakete, die von der Zielplattform bereitgestellt werden. Mit dieser Änderung markiert das Feature auch direkt keine PackageReference Elemente mit PrivateAssets=all und IncludeAssets=none Attributen. Diese Attribute verhindern, dass die Pakete in generierten Abhängigkeitslisten für Pakete angezeigt werden.
Version eingeführt
.NET 10
Vorheriges Verhalten
Wenn die Schnittstellenbereinigung aktiviert ist, erscheinen direkt ausdünnbare PackageReference Elemente weiterhin in der generierten .nuspec-Abhängigkeitsliste, selbst wenn das Paket von der Plattform bereitgestellt wurde. (Und wenn Ihr Projekt auf .NET 10 ausgerichtet ist, hat es möglicherweise eine NU1510 Warnung generiert.)
Betrachten Sie z. B. ein Multiadressierungsprojekt mit der folgenden Konfiguration:
<PropertyGroup>
<TargetFramework>net10.0;net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Text.Json" Version="9.0.8" />
</ItemGroup>
Eine solche Projektdatei hat eine NUSPEC-Datei mit Abhängigkeiten für beide Zielframeworks generiert:
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
<group targetFramework="net10.0">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
</dependencies>
Neues Verhalten
Ab .NET 10 werden, wenn die Beschneidung aktiviert ist, direkt beschneidbare PackageReference-Elemente automatisch mit PrivateAssets=all und IncludeAssets=none markiert, wodurch sie von den generierten Abhängigkeiten für Zielframeworks ausgeschlossen werden, in denen sie von der Plattform bereitgestellt werden. (Wenn Ihr Projekt jedoch auf .NET 10 oder höher ausgerichtet ist, erhalten Sie immer noch eine NU1510 Warnung , bis Sie den Verweis aus Ihrem Projekt entfernen.)
Die gleiche Projektkonfiguration generiert nun eine NUSPEC-Datei , wobei die pr-Abhängigkeit nicht aus dem Zielframework entfernt wird, das sie bereitstellt (.NET 10):
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
<group targetFramework="net10.0">
</group>
</dependencies>
Art der Unterbrechungsänderung
Diese Änderung ist eine Verhaltensänderung.
Änderungsgrund
Diese Änderung stellt sicher, dass Paketabhängigkeiten die tatsächlichen Anforderungen für jedes Zielframework genau widerspiegeln. Es verhindert, dass unnötige Paketverweise in generierten Paketen angezeigt werden, wenn diese APIs bereits vom Zielframework bereitgestellt werden.
Empfohlene Aktion
- Wenn Sie ein Paket erstellen und eine
NU1510Warnung erhalten, folgen Sie den Anweisungen dort. - Wenn Sie ein Paket erstellen und die generierten Nuspec-Abhängigkeiten kein referenziertes Paket für ein Zielframework enthalten, entfernen Sie den Verweis aus der Projektdatei, da er nicht benötigt wird.
- Wenn das referenzierte Paket in der NUSPEC-Datei angezeigt wird, ist keine Aktion erforderlich.
Betroffene APIs
Nichts.