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>