Comment avoir un numéro de version auto-incrémenté (Visual Studio) ?
Source : Stack Overflow [visual-studio]
Comment avoir un numéro de version auto-incrémenté (Visual Studio) ?
Source : Stack Overflow [visual-studio]
Si vous ajoutez une classe AssemblyInfo à votre projet et modifiez l’attribut AssemblyVersion pour qu’il se termine par un astérisque, par exemple :
[assembly: AssemblyVersion("2.10.*")]
Visual Studio incrémentera le dernier nombre pour vous selon ces règles (merci galets, j’avais complètement tort !)
Pour référencer cette version dans le code, afin de l’afficher à l’utilisateur, vous utilisez la réflexion. Par exemple,
Version version = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
DateTime buildDate = new DateTime(2000, 1, 1)
.AddDays(version.Build).AddSeconds(version.Revision * 2);
string displayableVersion = $"{version} ({buildDate})";
Trois points importants à connaître
De @ashes999 :
Il est également important de noter que si AssemblyVersion et AssemblyFileVersion sont tous deux spécifiés, vous ne verrez pas cela sur votre .exe.
De @BrainSlugs83 :
Définir uniquement le 4e nombre avec * peut être problématique, car la version n’augmentera pas toujours.
Le 3e nombre est le nombre de jours depuis l’an 2000, et le 4e nombre est le nombre de secondes depuis minuit (divisé par 2) [CE N’EST PAS ALÉATOIRE]. Donc si vous compilez la solution tard dans la journée un jour, et tôt dans la journée le lendemain, la compilation ultérieure aura un numéro de version antérieur. Je recommande de toujours utiliser X.Y.* au lieu de X.Y.Z.* car votre numéro de version augmentera TOUJOURS de cette façon.
Les versions plus récentes de Visual Studio affichent cette erreur :
(ce fil a débuté en 2009)
La chaîne de version spécifiée contient des caractères génériques, qui ne sont pas compatibles avec le déterminisme. Supprimez les caractères génériques de la chaîne de version ou désactivez le déterminisme pour cette compilation.
Consultez cette réponse SO qui explique comment [supprimer le déterminisme](https://stackoverflow.com/a/58101474
(Réponse tronquée)