Compartilhar via


PackageReference sem uma versão gerará um erro

A partir do .NET 10, o NuGet gera um NU1015 erro quando um PackageReference item não tem uma versão especificada, em vez do aviso anteriorNU1604.

Não há nenhuma alteração ao usar o Gerenciamento Central de Pacotes, pois, por design, o XML PackageReference não deve ter uma versão nesse cenário.

Versão introduzida

.NET 10

Comportamento anterior

Anteriormente, o NuGet gerava um aviso NU1604 com o seguinte texto:

A dependência do projeto 'PackageA' não contém um limite inferior inclusivo. Inclua um limite inferior na versão de dependência para garantir resultados consistentes de restauração.

Novo comportamento

A partir do .NET 10, o NuGet gera um erro NU1015 com o seguinte texto:

Os seguintes itens packageReference não têm uma versão especificada: PackageA

Tipo de mudança disruptiva

Essa é uma mudança comportamental.

Motivo da alteração

A mensagem "sem limite inferior" era confusa e não estava claro como corrigir o problema. Além disso, o NuGet restaurou a versão mais baixa para esse pacote, que raramente é o que os desenvolvedores querem. Essa alteração fornece mensagens de erro mais claras e acionáveis quando os metadados de versão estão ausentes.

Adicione uma versão à referência do pacote, por exemplo:

- <PackageReference Include="Some.Package" />
+ <PackageReference Include="Some.Package" Version="1.2.3" />

Se a versão mais baixa do pacote for desejada, use Version="0.0.0". Nesse caso, o NuGet levantará o aviso NU1603, em vez do NU1604 anterior.

Para reverter para o aviso anterior, você pode definir SdkAnalysisLevel como 9.0.300 ou reduzir. No entanto, isso afetará todos os recursos que dependem de SdkAnalysisLevel.

APIs afetadas

Nenhum.