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

Esse aviso é gerado como resultado da poda do grafo de dependência do NuGet e indica que um pacote predefinido de outra forma foi restaurado devido a um direct PackageReference. O pacote nomeado poderá ser removido se o direct PackageReference for removido, já que o SDK do .NET de destino fornece a mesma versão ou superior desse assembly.

Esse aviso afeta apenas os pacotes registrados para poda por meio do recurso PrunePackageReference . Ele é gerado quando o PackageReference em questão pode ser completamente removido do projeto.

Exemplo 1

Quando o SDK do .NET de destino inclui uma versão equivalente, a resolução de conflitos de dependência seleciona o assembly agrupado no SDK:

  <PropertyGroup>
    <!-- 'System.Text.Json' is SDK-bundled in 'net10.0' -->
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <!-- The assembly provided by this reference will not be used -->
    <PackageReference Include="System.Text.Json" Version="10.0.0" />
  </ItemGroup>

Exemplo 2

Quando o SDK do .NET de destino inclui uma versão equivalente para vários destinos de estrutura, a resolução de conflitos de dependência seleciona o assembly empacotado em SDK apropriado para cada destino:

  <PropertyGroup>
    <!-- 'System.Text.Json' is SDK-bundled in both TFMs -->
    <TargetFrameworks>net9.0;net10.0</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <!-- Neither of the assemblies provided by these references will be used -->
    <PackageReference Include="System.Text.Json" Version="10.0.0" Condition="'$(TargetFramework)' == 'net10.0'"/>
    <PackageReference Include="System.Text.Json" Version="9.0.4" Condition="'$(TargetFramework)' == 'net9.0'"/>
  </ItemGroup>

Solution

Remova o desnecessário PackageReference.

Note

A partir do .NET 10, o PrunePackageReference recurso é habilitado por padrão para todos os projetos destinados ao .NET 10 ou superior. O aviso só é gerado quando a poda se aplica a todos os destinos de runtime:

  <PropertyGroup>
    <!-- 'System.Text.Json' is not SDK-bundled in 'net48' -->
    <TargetFrameworks>net10.0;net48</TargetFrameworks>
  </PropertyGroup>

  <ItemGroup>
    <!-- This reference is needed in 'net48' - NU1510 is not raised -->
    <PackageReference Include="System.Text.Json" Version="9.0.7" />
  </ItemGroup>