Mon groupe et moi-même sommes horribles pour incrémenter les numéros de version d'assembly et nous expédions fréquemment des assemblys avec les versions 1.0.0.0. Évidemment, cela cause beaucoup de maux de tête.
Nous nous améliorons beaucoup avec nos pratiques via notre plate-forme CI et j'aimerais vraiment la configurer pour incrémenter automatiquement les valeurs dans le assemblyinfo.cs
fichier afin que les versions de nos assemblys soient automatiquement mises à jour avec les changements de code dans cet assemblage.
J'avais précédemment configuré (avant que nous ayons trouvé Hudson ) un moyen d'incrémenter la valeur via msbuild
la ligne de commande ou la ligne de commande ( je ne me souviens pas), mais avec Hudson, cela mettra à jour le référentiel SVN et déclenchera UNE AUTRE build. Cela entraînerait une boucle infinie lente car Hudson interroge SVN toutes les heures.
Avoir Hudson incrémenter le numéro de version est-il une mauvaise idée? Quelle serait une autre façon de le faire?
Idéalement, mes critères pour une solution seraient ceux qui:
- Incrémente le numéro de build
assemblyinfo.cs
avant une build - Incrémente uniquement le numéro de build dans les assemblys qui ont changé. Cela peut ne pas être possible car Hudson efface le dossier du projet à chaque fois qu'il fait une compilation
- Valide l'assemblyinfo.cs modifié dans le référentiel de code (actuellement VisualSVN )
- Ne provoque pas Hudson pour déclencher une nouvelle version la prochaine fois qu'il recherche les modifications
En travaillant cela dans ma tête, je pourrais facilement trouver une solution à la plupart de cela via des fichiers de commandes / commandes, mais toutes mes idées amèneraient Hudson à déclencher une nouvelle construction la prochaine fois qu'il analyse. Je ne cherche pas quelqu'un pour tout faire à ma place, juste me diriger dans la bonne direction, peut-être une technique pour amener Hudson à ignorer certains commits SVN, etc.
Tout ce que j'ai trouvé jusqu'à présent n'est qu'un article expliquant comment obtenir le numéro de version incrémenté automatiquement, rien ne prend en compte une plate-forme CI qui pourrait être transformée en une boucle infinie.