Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O recurso PrunePackageReference remove automaticamente pacotes transitivos fornecidos pela plataforma de destino. Com essa alteração, o recurso também marca itens diretamente prunáveis PackageReference com PrivateAssets=all e IncludeAssets=none atributos. Esses atributos impedem que os pacotes apareçam em listas de dependência geradas para pacotes.
Versão introduzida
.NET 10
Comportamento anterior
Anteriormente, se a poda estava habilitada, itens diretamente podáveis PackageReference ainda apareciam na lista de dependências .nuspec geradas, mesmo que o pacote tenha sido fornecido pela plataforma. (E se o projeto tiver como destino o .NET 10, ele poderá ter gerado um NU1510 aviso.)
Por exemplo, considere um projeto de vários destinos com a seguinte configuração:
<PropertyGroup>
<TargetFramework>net10.0;net472</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Text.Json" Version="9.0.8" />
</ItemGroup>
Esse arquivo de projeto gerou um arquivo .nuspec com dependências para ambas as estruturas de destino:
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
<group targetFramework="net10.0">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
</dependencies>
Novo comportamento
A partir do .NET 10, quando a poda está habilitada, os itens diretamente aptos para poda PackageReference são automaticamente marcados com PrivateAssets=all e IncludeAssets=none, o que os exclui das dependências geradas para frameworks de destino onde são fornecidos pela plataforma. (No entanto, se o projeto for direcionado ao .NET 10 ou posterior, você ainda receberá um NU1510 aviso até remover a referência do seu projeto.)
A mesma configuração de projeto agora gera um arquivo .nuspec com a dependência podável removida da estrutura de destino que o fornece (.NET 10):
<dependencies>
<group targetFramework=".NETFramework4.7.2">
<dependency id="System.Text.Json" version="9.0.8" />
</group>
<group targetFramework="net10.0">
</group>
</dependencies>
Tipo de alteração interruptiva
Essa alteração é uma mudança comportamental.
Motivo da alteração
Essa alteração garante que as dependências do pacote reflitam com precisão os requisitos reais para cada estrutura de destino. Ele impede que referências desnecessárias de pacote apareçam em pacotes gerados quando essas APIs já são fornecidas pela estrutura de destino.
Ação recomendada
- Se você criar um pacote e receber um
NU1510aviso, siga as instruções. - Se você criar um pacote e as dependências .nuspec geradas não contiverem um pacote referenciado para qualquer estrutura de destino, remova a referência do arquivo de projeto, pois ela não é necessária.
- Se o pacote referenciado aparecer no arquivo .nuspec , nenhuma ação será necessária.
APIs afetadas
Nenhum.