次の方法で共有


NuGet 警告 NU1510

Scenario

PackageReference System.Text.Json は排除されません。 このパッケージは不要である可能性があるため、依存関係から削除することを検討してください。

Issue

パッケージ System.Text.Json は、PrunePackageReference 機能を使用して排除するために指定されています。 .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 パッケージの各条件付きPackageReferenceは削除できます。パッケージは、そのパッケージが宣言されているフレームワークのそれぞれの .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 など、少なくとも 1 つのフレームワークにパッケージが必要なシナリオでは発生しません。

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

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