Compartilhar via


Erro do NuGet NU1011

Versões de pacotes flutuantes definidas centralmente não são permitidas.

Problema

Por padrão, <PackageVersion /> os itens não podem conter versões flutuantes. O gerenciamento de pacotes central (CPM) do NuGet é considerado um recurso de nível empresarial que fornece gerenciamento de versão mais fácil em escala, bem como restaurações determinísticas e seguras. O uso de versões flutuantes introduz a possibilidade de um pacote incorreto ser introduzido em sua compilação depois de ter sido empurrado para um feed. Isso pode levar a uma situação em que você não fez alterações em seu repositório, mas algo é quebrado de forma repentina 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 está corrigida. O uso de 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 de qual alteração causou a interrupção e a reversão de uma confirmação para voltar a um bom estado.

O recurso de fixação transitiva foi projetado para permitir que você substitua explicitamente as versões transitivas em seu gráfico para obter mais controle. Usar uma versão flutuante como uma substituição poderia fazer com que restaurações de diferentes projetos acabassem com versões diferentes para o pacote que deveria ser fixado, indo assim contra a promessa de usar a versão central.

O NuGet recomenda que você use uma automação como o Dependabot para manter as versões do pacote atualizadas, o que fornece uma maneira simplificada de manter os pacotes atualizados enquanto se integram ao fluxo de trabalho do desenvolvedor existente de uma pull request, validação de compilação automatizada e teste, tudo apoiado por uma confirmação em seu repositório.

Solução

Recomenda-se alterar a versão flutuante para um intervalo de versão não flutuante. Se isso não for possível, você poderá habilitar versões flutuantes com CPM definindo uma propriedade do MSBuild:

<PropertyGroup>
  <CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>