Compartilhar via


Aviso nuget NU1510

Scenario

PackageReference System.Text.Json não será podado. Considere remover esse pacote de suas dependências, pois provavelmente é desnecessário.

Issue

O System.Text.Json do pacote foi especificado para a poda por meio do recurso PrunePackageReference. O .NET SDK geralmente especifica a lista de pacotes a serem podados. O pacote não é necessário como um PackageReference direto, pois o próprio runtime do .NET carrega a mesma versão ou versão superior do assembly.

Esse aviso é gerado quando o PackageReference em questão pode ser completamente removido do projeto.

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>

Cada condicional PackageReference para o System.Text.Json pacote pode ser removida porque o pacote já está incluído nas respectivas versões de runtime do .NET para as estruturas para as quais ele é declarado.

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>

O System.Text.Json pacote está dentro do intervalo de poda da única estrutura para a qual ele é declarado.

Solution

Remova o PackageReference, pois ele é desnecessário.

Note

Para permitir uma adoção mais fácil do recurso PrunePackageReference, esse aviso é gerado por padrão quando um projeto tem como destino a estrutura do .NET 10 ou mais recente.

Note

O aviso não será gerado em cenários nos quais pelo menos uma das estruturas ainda precisa do pacote, como net48 no exemplo abaixo.

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

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