Quelles sont les différences entre AssemblyVersion, AssemblyFileVersion et AssemblyInformationalVersion ?
Source : Stack Overflow [.net],)
Quelles sont les différences entre AssemblyVersion, AssemblyFileVersion et AssemblyInformationalVersion ?
Source : Stack Overflow [.net],)
AssemblyVersion
C’est l’endroit où les autres assemblages qui référencent le vôtre vont chercher. Si ce numéro change, les autres assemblages doivent mettre à jour leurs références vers votre assemblage ! Ne mettez à jour cette version que si cela casse la rétrocompatibilité. Le AssemblyVersion est obligatoire.
J’utilise le format : majeur.mineur (et majeur pour les bases de code très stables). Cela donnerait :
[assembly: AssemblyVersion("1.3")] // in AssemblyInfo.cs
<AssemblyVersion>1.3</AssemblyVersion> // in .csproj
Si vous suivez strictement le SemVer, cela signifie que vous ne mettez à jour que lorsque le majeur change, donc 1.0, 2.0, 3.0, etc.
AssemblyFileVersion
Utilisé pour le déploiement (comme les programmes d’installation). Vous pouvez incrémenter ce numéro pour chaque déploiement. Utilisez-le pour distinguer les assemblages qui ont le même AssemblyVersion mais qui sont générés à partir de compilations et/ou de code différents.
Sous Windows, il peut être consulté dans les propriétés du fichier.
Le AssemblyFileVersion est optionnel. S’il n’est pas spécifié, le AssemblyVersion est utilisé.
J’utilise le format : majeur.mineur.correctif.build, où je suis le SemVer pour les trois premières parties et j’utilise le numéro de build du serveur de build pour la dernière partie (0 pour un build local).
Cela donnerait :
[assembly: AssemblyFileVersion("1.3.2.42")] // in AssemblyInfo.cs
<FileVersion>1.3.2.42</FileVersion> // in .csproj
Sachez que System.Version nomme ces parties major.minor.build.revision !
AssemblyInformationalVersion
La version produit de l’assemblage. C’est la version que vous utiliseriez en parlant aux clients ou pour l’affichage sur votre site web. Cette version peut être une chaîne, comme ‘1.0 Release Candidate’.
Le AssemblyInformationalVersion est optionnel. S’il n’est pas spécifié, le AssemblyFileVersion est utilisé.
J’utilise le format : majeur.mineur[.correctif] [révision sous forme de chaîne]. Cela donnerait :
[assembly: AssemblyInformationalVersion("1.3 RC1")] // in AssemblyInfo.cs
<InformationalVersion>
*(Réponse tronquée)*