다음을 통해 공유


NuGet 경고 NU1510

Scenario

PackageReference System.Text.Json은 정리되지 않습니다. 불필요할 수 있으므로 종속성에서 이 패키지를 제거하는 것이 좋습니다.

Issue

패키지 System.Text.JsonPrunePackageReference 기능을 통해 정리하기 위해 지정되었습니다. .NET SDK 일반적으로 정리할 패키지 목록을 지정합니다. .NET 런타임 자체는 어셈블리의 동일하거나 더 높은 버전을 전달하므로 패키지는 직접 PackageReference로 필요하지 않습니다.

이 경고는 해당 PackageReference를 프로젝트에서 완전히 제거할 수 있는경우에만 발생합니다.

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>

패키지가 선언된 프레임워크의 System.Text.Json 해당 .NET 런타임 버전에 이미 포함되어 있으므로 패키지에 대한 각 조건을 PackageReference 제거할 수 있습니다.

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>

패키지는 System.Text.Json 선언된 유일한 프레임워크의 정리 범위 내에 있습니다.

Solution

불필요한 PackageReference를 제거합니다.

Note

PrunePackageReference 기능을 더 쉽게 채택할 수 있도록 프로젝트가 .NET 10 프레임워크 이상 버전을 대상으로 할 때 이 경고가 기본적으로 발생합니다.

Note

아래 예제와 같이 net48 프레임워크 중 하나 이상이 여전히 패키지를 필요로 하는 시나리오에서는 경고가 발생하지 않습니다.

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

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