Aracılığıyla paylaş


PrunePackageReference doğrudan budanabilir başvuruları özelleştirir

PrunePackageReference özelliği, hedef platform tarafından sağlanan geçişli paketleri otomatik olarak kaldırır. Bu değişiklikle birlikte özellik, ve öznitelikleriyle PackageReferencePrivateAssets=all ayıklama yapılabilir IncludeAssets=none öğeleri de işaretler. Bu öznitelikler paketlerin paketler için oluşturulan bağımlılık listelerinde görünmesini engeller.

Sürüm kullanıma sunulmuştur

.NET 10

Önceki davranış

Daha önce ayıklama etkinleştirildiyse, paket platform tarafından sağlandığı durumda bile doğrudan budanabilir PackageReference öğeler oluşturulan .nuspec bağımlılıkları listesinde görünmeye devam ediyordu. (Projeniz .NET 10'a hedeflediyse bir NU1510 uyarı oluşturmış olabilir.)

Örneğin, aşağıdaki yapılandırmaya sahip çoklu hedefleme projesini göz önünde bulundurun:

<PropertyGroup>
  <TargetFramework>net10.0;net472</TargetFramework>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="System.Text.Json" Version="9.0.8" />
</ItemGroup>

Böyle bir proje dosyası, her iki hedef çerçeve için de bağımlılıkları olan bir .nuspec dosyası oluşturdu:

<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>

Yeni davranış

.NET 10'dan itibaren, ayıklama etkinleştirildiğinde, doğrudan budanabilir PackageReference öğeler otomatik olarak PrivateAssets=all ve IncludeAssets=none ile işaretlenir, böylece platform tarafından sağlanan framework'lerdeki bağımlılıklardan hariç tutulur. (Ancak, projeniz .NET 10 veya sonraki bir sürümü hedeflediyse, başvuruyu projenizden kaldırana kadar bir NU1510 uyarı almaya devam edersiniz.)

Aynı proje yapılandırması artık onu sağlayan hedef çerçeveden kaldırılabilir bağımlılığı olan bir .nuspec dosyası oluşturur (.NET 10):

<dependencies>
  <group targetFramework=".NETFramework4.7.2">
    <dependency id="System.Text.Json" version="9.0.8" />
  </group>
  <group targetFramework="net10.0">
  </group>
</dependencies>

Hataya neden olan değişikliğin türü

Bu değişiklik davranışsal bir değişikliktir.

Değişiklik nedeni

Bu değişiklik, paket bağımlılıklarının her hedef çerçeve için gerçek gereksinimleri doğru şekilde yansıtmasını sağlar. Bu API'ler hedef çerçeve tarafından zaten sağlandığında, oluşturulan paketlerde gereksiz paket başvurularının görünmesini engeller.

  • Bir paket oluşturup uyarıNU1510 alırsanız buradaki yönergeleri izleyin.
  • Bir paket oluşturursanız ve oluşturulan .nuspec bağımlılıkları herhangi bir hedef çerçeve için başvurulabilecek bir paket içermiyorsa, gerekli olmadığından başvuruyu proje dosyasından kaldırın.
  • Başvuruda bulunılan paket .nuspec dosyasında görünüyorsa hiçbir eylem gerekmez.

Etkilenen API'ler

Hiç kimse.

Ayrıca bkz.