Si vous ajoutez une classe AssemblyInfo à votre projet et modifiez l'attribut AssemblyVersion
pour se terminer par un astérisque, par exemple :
[assembly: AssemblyVersion("2.10.*")]
Visual Studio va augmenter le nombre final pour vous selon ces règles (merci galets, j'avais complètement tort!)
Pour faire référence à cette version dans le code, pour que vous puissiez l'afficher à l'utilisateur, 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 à savoir
De @ashes999:
Il est également important de noter que si à la fois AssemblyVersion
et AssemblyFileVersion
sont spécifiés, vous ne verrez pas cela sur votre .exe.
De @BrainSlugs83:
Mettre seulement le 4e nombre à *
peut être mauvais, car la version n'augmentera pas toujours. Le 3e nombre est le nombre de jours depuis l'année 2000, et le 4e nombre est le nombre de secondes depuis minuit (divisé par 2) [CE N'EST PAS ALÉATOIRE]. Donc si vous avez construit la solution tard dans une journée un jour, et tôt dans une journée le lendemain, la construction ultérieure aurait un numéro de version antérieur. Je recommande toujours d'utiliser X.Y.*
au lieu de X.Y.Z.*
car votre numéro de version augmentera TOUJOURS de cette manière.
Les nouvelles versions de Visual Studio donnent cette erreur :
(ce fil a commencé 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.
Voir cette réponse SO qui explique comment supprimer le déterminisme (https://stackoverflow.com/a/58101474/1555612)
2 votes
Malgré que la question ait déjà reçu une réponse, les réponses de Noel Kennedy et Matthieu sont plus utiles que les autres questions/réponses