Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Scenario
PackageReference System.Text.Json no se eliminará. Considere la posibilidad de quitar este paquete de las dependencias, ya que es probable que no sea necesario.
Issue
Esta advertencia se genera como resultado de la eliminación del grafo de dependencias de NuGet e indica que se restauró un paquete que se puede eliminar de otro modo debido a un directo PackageReference.
El paquete con nombre se puede eliminar si se quita el elemento directo PackageReference , ya que el SDK de .NET de destino proporciona la misma versión o superior de este ensamblado.
Esta advertencia solo afecta a los paquetes registrados para la eliminación a través de la característica PrunePackageReference .
Solo se genera cuando el PackageReference elemento en cuestión se puede quitar completamente del proyecto.
Ejemplo 1
Cuando el SDK de .NET de destino incluye una versión equivalente, la resolución de conflictos de dependencias selecciona el ensamblado agrupado por el 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>
Ejemplo 2
Cuando el SDK de .NET de destino incluye una versión equivalente para varios destinos de marco, la resolución de conflictos de dependencias selecciona el ensamblado agrupado del SDK adecuado 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
Quite el elemento innecesario PackageReference.
Note
A partir de .NET 10, la PrunePackageReference característica está habilitada de forma predeterminada para todos los proyectos que tienen como destino .NET 10 o superior. La advertencia solo se genera cuando la eliminación se aplica a todos los destinos en tiempo de ejecución:
<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>