En ce qui concerne convention, le logiciel NuGet lui-même, et la sémantique qu'elle applique aux paquets dans la galerie, ne versioning comme décrit par SemVer. Spécifiquement, vous pouvez désigner des versions bêta en suffixant votre numéro de version Nuspec avec "-beta.4" ou quelque chose. Par exemple, voir comment la galerie affiche the latest version of AutoFac, et comparez comment il affiche an old release ( notez le texte "Ceci n'est pas la dernière version d'Autofac disponible."Modifier: La galerie ne semble plus fournir de message spécial pour les non -current versions) et an old PRE-release version (avec le texte "Ceci est une version préliminaire d'Autofac.").
Malheureusement, le AssemblyVersion
dans AssemblyInfo.cs
ne peut pas contenir de lettres ou de traits d'union, il ne peut donc pas être utilisé de cette manière. Cependant le AssemblyInformationalVersion
PEUT avoir des lettres et des traits d'union et, si vous le fournissez, NuGet l'utilisera au lieu du AssemblyVersion
pour remplacer le jeton $version$
dans votre fichier nuspec. Qui plus est, le AssemblyInformationalVersion
(également appelé la «version du produit» si vous vérifiez les détails d'une DLL dans Windows Explorer), au moins pour moi, représente mieux ce que la version de NuGet devrait correspondre.
J'ai une légère préoccupation cette approche que je devrait quitter le AssemblyVersion
même à travers diverses itérations bêta et une itération de la production finale du AssemblyInformationalVersion
, ce qui signifie que je suis permettant à plusieurs versions différentes de ma DLL dans le sauvage qui peut se comporter différemment ou incorrectement, mais sont tous identiques en ce qui concerne le CLR (le CLR seulement se soucie environ AssemblyVersion
). En pratique, cependant, cela arrive fréquemment (y compris avec les paquets AutoFac décrits ci-dessus) et cela ne semble pas poser de problème.
Voir les deux excellentes réponses les mieux votées à What are differences between AssemblyVersion, AssemblyFileVersion and AssemblyInformationalVersion? pour plus d'informations sur AssemblyInformationalVersion
et vos amis.