Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os seguintes itens PackageVersion não podem especificar uma versão flutuante: PackageName.
Questão
Um projeto é configurado para usar o NuGet Central Package Management e um <PackageVersion /> item é definido que especifica um valor de versão flutuante para o Version atributo:
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>
Por padrão, <PackageVersion /> os itens não podem especificar versões flutuantes.
O Gerenciamento Central de Pacotes do NuGet oferece aos usuários a capacidade de gerenciar versões de pacotes em um único local, bem como restaurações determinísticas e seguras.
O uso de versões flutuantes introduz a possibilidade de um pacote ruim ser introduzido em sua compilação depois de ter sido enviado para um feed.
Isso pode levar a uma situação em que você não fez alterações em seu repositório, mas de repente algo é quebrado devido a um problema em um novo pacote e não há como você voltar a um bom estado sem remover a versão flutuante ou empurrar uma versão mais recente do pacote que é corrigido.
Usar versões não flutuantes significa que cada atualização para um pacote é apoiada por uma confirmação em seu repositório, facilitando a determinação da alteração que causou a interrupção e permitindo que você reverta uma confirmação para voltar a um bom estado.
Além disso, ao usar o recurso de fixação transitiva do Gerenciamento Central de Pacotes, usar uma versão flutuante como uma substituição pode fazer com que restaurações de diferentes projetos acabem com versões diferentes para o pacote que o que deveria ser fixado, indo contra a promessa de usar a versão definida centralmente.
O NuGet recomenda que você use automação como o Dependabot para manter as versões de pacotes up-toatualizadas, o que fornece uma maneira simplificada de atualizar versões de pacotes enquanto integra ao fluxo de trabalho de desenvolvedor existente uma solicitação pull, validação de compilação automatizada e testes, tudo apoiado por uma confirmação em seu repositório.
Solução
- Recomenda-se alterar a versão flutuante para um intervalo de versões não flutuantes:
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
- Se isso não for possível, ou se você desejar usar versões flutuantes com o Gerenciamento Central de Pacotes, poderá fazê-lo definindo uma propriedade MSBuild:
<PropertyGroup>
<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>