Erreur NuGet NU1011
Les versions de package flottantes définies de manière centralisée ne sont pas autorisées.
Problème
Par défaut, <PackageVersion />
les éléments ne peuvent pas contenir de versions flottantes. La gestion centralisée des packages (CPM) de NuGet est considérée comme une fonctionnalité au niveau de l’entreprise qui facilite la gestion des versions à grande échelle, ainsi que les restaurations déterministes et sécurisées. L’utilisation de versions flottantes introduit la possibilité pour un package incorrect d’être introduit dans votre version une fois qu’il a été envoyé à un flux. Cela peut entraîner une situation où vous n’avez apporté aucune modification dans votre référentiel, mais soudainement quelque chose est rompu et il n’existe aucun moyen pour vous de revenir dans un bon état sans supprimer la version flottante ou envoyer une version plus récente du package qui est résolu. L’utilisation de versions non flottantes signifie que chaque mise à niveau vers un package est soutenue par une validation dans votre référentiel, ce qui facilite la détermination de la modification à l’origine de l’arrêt et la restauration d’une validation pour revenir à un bon état.
La fonctionnalité d’épinglage transitif est conçue pour vous permettre de remplacer explicitement les versions transitives de votre graphique pour plus de contrôle. L’utilisation d’une version flottante comme remplacement peut rendre les restaurations de différents projets se terminent par des versions différentes pour le package censé être épinglé, ce qui va à l’encontre de la promesse d’utiliser la version centrale.
NuGet vous recommande d’utiliser l’automatisation comme Dependabot pour maintenir les versions de package à jour, ce qui offre un moyen simplifié de maintenir les packages mis à jour tout en s’intégrant à votre flux de travail de développeur existant d’une demande de tirage, d’une validation de version automatisée et de tester toutes les versions sauvegardées par une validation dans votre référentiel.
Solution
Il est recommandé de remplacer la version flottante par une plage de versions non flottantes. Si cela n’est pas possible, vous pouvez activer les versions flottantes avec CPM en définissant une propriété MSBuild :
<PropertyGroup>
<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>