Si comme moi, vous avez toujours rêvé de pouvoir gérer son numéro de version au niveau de solution et non au niveau de chaque projet cet article est fait pour vous !
Marche à suivre
- Click droit sur la solution -> Ajouter un nouvel item -> Classe Visual C#
- Nommez le fichier « SharedAssembyInfo.cs »
- Reprenez toutes les infos d’un « AssemblyInfo.cs » d’un projet existant et copier-coller le contenu dans « SharedAssembyInfo.cs ». Les fichiers « AssemblyInfos.cs » se trouvent dans la rubrique « Properties » située juste au-dessus de « Références ».
- Mettez en commentaire tout le contenu des différents « AssemblyInfo.cs »
- Sur chaque projet :
- Click droit -> Ajouter élément existant
- Sélectionner le « SharedAssembyInfo.cs »
- Choisir d’ajouter en tant que lien
- Faites glisser le fichier ajouté au projet dans le dossier « Properties »
A savoir
Vous n’êtes pas obligé de partager toutes les informations dans le « SharedAssembyInfo.cs », tout ce qui est spécifique à chaque projet vous pouvez le laisser dans le « AssemblyInfos.cs » du projet.
Pour allez plus loin
Savez-vous que vous pouvez générer un numéro de build sans usine de build depuis Visual Studio? Pour cela il suffit de :
- Mettre en commentaire l’attribut « [assembly: AssemblyFileVersion(« 1.0.0.0 »)]» que l’on trouve dans « SharedAssembyInfo.cs » ou « AssemblyInfos.cs ». Seul l’attribut « AssemblyVersion » doit être spécifié.
- Mettre l’attribut « AssemblyVersion » sous la forme : « [assembly: AssemblyVersion(« Majeur.Mineur.* »)] »
Après ça, à chaque build, Visual Studio va remplacer l’étoile par un « numéro de build » et un « numéro de révision » :
- Numéro de build : Le nombre de jour depuis le 1er Janvier 2000.
- Numéro de révision : Le nombre de secondes depuis minuit divisé par 2.
J’espère que cet article vous aura été utile 😉
Sources
http://weblogs.asp.net/ashishnjain/sharing-assembly-version-across-projects-in-a-solution
http://www.csharpcity.com/2012/visual-studio-automatic-version-numbering/
https://msdn.microsoft.com/en-us/library/k49w9389(v=vs.110).aspx