Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Scenario 1
PackageReference System.Text.Json non verrà eliminati. Questo pacchetto è disponibile automaticamente e non deve essere fatto riferimento in modo esplicito. Rimuovere l'elemento PackageReference
Issue
Questo avviso viene generato come risultato dell'eliminazione del grafo delle dipendenze NuGet e indica che un pacchetto altrimenti prunable è stato ripristinato a causa di un'operazione diretta PackageReference.
Il pacchetto denominato può essere eliminato se viene rimosso direttamente PackageReference , poiché .NET SDK di destinazione fornisce la stessa versione o successiva di questo assembly.
Questo avviso interessa solo i pacchetti registrati per l'eliminazione tramite la funzionalità PrunePackageReference .
Viene generato solo quando l'oggetto PackageReference in questione può essere completamente rimosso dal progetto.
Esempio 1
Quando .NET SDK di destinazione include una versione equivalente, la risoluzione dei conflitti di dipendenza seleziona l'assembly in bundle 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>
Esempio 2
Quando .NET SDK di destinazione include una versione equivalente per più destinazioni del framework, la risoluzione dei conflitti di dipendenza seleziona l'assembly in bundle SDK appropriato per ogni destinazione:
<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
Rimuovere l'oggetto non necessario PackageReference.
Scenario 2
Microsoft PackageReference. Extensions.Caching.Memory non verrà eliminati. Questo pacchetto è disponibile automaticamente e non deve essere fatto riferimento in modo esplicito. Rimuovere l'elemento PackageReference
Issue
L'elenco dei pacchetti utilizzati per l'eliminazione è determinato dagli elementi diretti FrameworkReference del progetto corrente.
FrameworkReference gli elementi sono transitivi.
Tuttavia, quando il progetto corrente eredita un riferimento al framework tramite , ProjectReferencel'eliminazione non usa tale riferimento al framework transitivo per rimuovere i pacchetti.
Si noti che questo pacchetto verrà rimosso dalla risoluzione dei conflitti in fase di compilazione.
Esempio
In questo esempio, Library.csproj fa riferimento a Microsoft.AspNetCore.App e Consumer.csproj riferimenti Library.csproj.
Senza un controllo diretto FrameworkReference in Consumer.csproj, NuGet non è in grado di determinare che il pacchetto è prunable.
Di conseguenza, Microsoft.Extensions.Caching.Memory non è considerato prunable nel progetto consumer.
<!-- Library.csproj -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
</Project>
<!-- Consumer.csproj -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Library\Library.csproj" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
</ItemGroup>
</Project>
Aggiungere direttamente a FrameworkReferenceConsumer.csproj.
NuGet può quindi determinare che Microsoft.Extensions.Caching.Memory viene fornito dal framework condiviso.
Genera NU1510 per il riferimento al pacchetto diretto non necessario.
<ItemGroup>
<ProjectReference Include="..\Library\Library.csproj" />
<FrameworkReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="8.0.0" />
</ItemGroup>
Solution
Aggiungere la corrispondenza FrameworkReference direttamente al progetto corrente.
Rimuovere quindi l'oggetto non necessario PackageReference.
Note
A partire da .NET 10, la PrunePackageReference funzionalità è abilitata per impostazione predefinita per tutti i progetti destinati a .NET 10 o versione successiva. L'avviso viene generato solo quando l'eliminazione si applica a tutte le destinazioni di runtime:
<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>