NuGet-varning NU1510

Scenario

PackageReference System.Text.Json kommer inte att beskäras. Överväg att ta bort det här paketet från dina beroenden, eftersom det sannolikt är onödigt.

Issue

Paketet System.Text.Json har angetts för rensning via funktionen PrunePackageReference. .NET SDK anger vanligtvis listan över paket som ska beskäras. Paketet behövs inte som en direkt PackageReference eftersom själva .NET-körningen har samma eller högre version av sammansättningen.

Den här varningen utlöses bara när PackageReference i fråga kan tas bort helt från projektet.

Example 1

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

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

Example 2

  <PropertyGroup>
    <TargetFrameworks>net9.0;net10.0</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Condition="'$(TargetFramework)' == 'net10.0'" Include="System.Text.Json" Version="10.0.0" />
    <PackageReference Condition="'$(TargetFramework)' == 'net9.0'" Include="System.Text.Json" Version="9.0.0" />
  </ItemGroup>

Varje villkorsstyrd PackageReference för System.Text.Json paketet kan tas bort eftersom paketet redan ingår i respektive .NET-körningsversioner för de ramverk som det deklareras för.

Example 3

  <PropertyGroup>
    <TargetFrameworks>net9.0;net10.0</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Condition="'$(TargetFramework)' == 'net9.0'" Include="System.Text.Json" Version="9.0.4" />
  </ItemGroup>

Paketet System.Text.Json ligger inom rensningsintervallet för det enda ramverk som det har deklarerats för.

Solution

Ta bort PackageReference eftersom det är onödigt.

Note

För att underlätta införandet av funktionen PrunePackageReference aktiveras den här varningen som standard när ett projekt riktar in sig på .NET 10-ramverket eller senare.

Note

Varningen tas inte upp i scenarier där minst ett av ramverken fortfarande behöver paketet, till exempel net48 i exemplet nedan.

  <PropertyGroup>
    <TargetFrameworks>net10.0;net48</TargetFrameworks>
  </PropertyGroup>

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