Démonstrations de gestion des versions
Exemples de façons de versionner des projets .NET Core avec et sans déploiement continu (CD)
Si vous clonez ce site et l'exécutez localement en modes Debug et Release, vous verrez des résultats différents. Vous pouvez visiter une version en direct sur https://versioningdemos.azurewebsites.net/ qui est passée par mon Git et VSTS pour générer les informations de version.
Vous remarquerez que Microsoft a différentes stratégies de gestion des versions au sein de ses propres bibliothèques .Net, probablement pas provenant des mêmes équipes.
Il existe 3 versions généralement référencées dans un assembly .NET Core
- Version du fichier - ceci est utilisé pour voir quelle DLL est la plus récente.
- Il a le modèle xybr généralement considéré comme Major.Minor.Build.Revision
- Version du produit - également connue sous le nom de InformationalVersion au sein de l'assembly. Il s'agit d'une version texte libre utilisée à des fins descriptives.
- Actuellement, le format de ceci a tendance à suivre le modèle de gestion des versions sémantiques (proposé par GitHub)
- xyp-buildinfo Major.Minor.Patch[-métadonnées]
- Vous pouvez en savoir plus sur semver.org
- Version de l'assembly - la version de l'assembly
La méthode normale que vous voyez pour récupérer les informations de version ne fonctionne que pour certains cas d'utilisation et s'effondre lorsqu'elle est placée dans une bibliothèque.
Exemples de projets de version
Tous ces projets utilisent les fichiers .vbproj (peut-être aussi .csproj) plutôt que les techniques précédentes qui utilisaient AssemblyInfo.cs ou project.json.
Rien de défini - Par défaut
- La valeur par défaut est 1.0.0
Définition d'une valeur - Manuel
Utilisation de l'interface utilisateur de Visual Studio (propriétés du projet/package)
- Même si vous ne l'utilisez pas pour définir les informations, les valeurs calculées seront affichées.
- Faites attention à ne pas écraser accidentellement les valeurs calculées ailleurs
- Modification de
.csproj
Définition de toutes les valeurs - Manual.AllDifferent
- Utilisation de l'interface utilisateur de Visual Studio
- Modification de
.csproj
Utilisez simplement VersionPrefix - VersionPrefix
VersionSuffixe - VersionSuffixe
BuildRevision - BuildRevision
- répliquer les caractères génériques de construction et de révision en implémentant la logique du modèle de version de Roslyn
- Utilise les calculs dans le fichier csproj
BuildDateTime - BuildDateTime
- utilisé x.YYYY.MDD.HHMM pour créer des valeurs automatisées
Construction de Visual Studio Team Services - VSTS
- Ajouter le BUILDNUMBER configuré de VSTS à VersionSuffix
Création de Visual Studio Team Services avec la branche Git - VSTS.WithGit
- Ajoutez également la branche Git au suffixe de version
Aides-étiquettes
Lorsque vous utilisez Taghelpers, il existe plusieurs pièges.
- Les pages finissent par être placées dans des assemblys différents de ceux auxquels vous pourriez vous attendre
- L'exécution dans Debug ou Release peut donner des valeurs différentes et des assemblys créés
- Placer un TagHelper dans une bibliothèque externe modifie le résultat de l'assembly en cours d'exécution