Поделиться через


Предупреждение NuGet NU1510

Scenario

PackageReference System.Text.Json не будет обрезано. Рекомендуется удалить этот пакет из зависимостей, так как это, скорее всего, не требуется.

Issue

Пакет System.Text.Json был указан для очистки с помощью функции PrunePackageReference. В .NET SDK обычно указывается список пакетов для очистки. Пакет не требуется в качестве прямого пакета PackageReference, так как сама среда выполнения .NET несет ту же или более высокую версию сборки.

Это предупреждение возникает только при полном удалении объекта 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>

Каждый условный для PackageReferenceSystem.Text.Json пакета можно удалить, так как пакет уже включен в соответствующие версии среды выполнения .NET для платформ, для которых он объявлен.

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>