Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les éléments PackageVersion suivants ne peuvent pas spécifier une version flottante : PackageName.
Problème
Un projet est configuré pour utiliser nuGet Central Package Management et un <PackageVersion /> élément est défini qui spécifie une valeur de version flottante pour l’attribut Version :
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.*" />
</ItemGroup>
Par défaut, <PackageVersion /> les éléments ne peuvent pas spécifier de versions flottantes.
La gestion centralisée des packages NuGet offre aux utilisateurs la possibilité de gérer les versions de package dans un emplacement unique, 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 en raison d’un problème dans un nouveau package et il n’existe aucun moyen pour vous de revenir dans un bon état sans supprimer la version flottante ou envoyer (push) 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 provoquée par l’arrêt et vous permet de rétablir une validation pour revenir dans un bon état.
En outre, lorsque vous utilisez la fonctionnalité d’épinglage transitive de central Package Management, 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 que ce qui est censé être épinglé, ce qui va à l’encontre de la promesse d’utiliser la version définie de manière centralisée.
NuGet vous recommande d’utiliser l’automatisation comme Dependabot pour conserver les versions de package up-to-date qui fournit un moyen simplifié de mettre à jour les versions de package tout en s’intégrant à votre flux de travail de développeur existant d’une demande de tirage, de validation de build 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 :
<ItemGroup>
<PackageVersion Include="PackageName" Version="1.0.0" />
</ItemGroup>
- Si cela n’est pas possible ou si vous souhaitez utiliser des versions flottantes avec la gestion centralisée des packages, vous pouvez le faire en définissant une propriété MSBuild :
<PropertyGroup>
<CentralPackageFloatingVersionsEnabled>true</CentralPackageFloatingVersionsEnabled>
</PropertyGroup>