Partager via


AssemblyVersionAttribute Classe

Définition

Spécifie la version de l’assembly en cours d’attribut.

public ref class AssemblyVersionAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class AssemblyVersionAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class AssemblyVersionAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type AssemblyVersionAttribute = class
    inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, Inherited=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type AssemblyVersionAttribute = class
    inherit Attribute
Public NotInheritable Class AssemblyVersionAttribute
Inherits Attribute
Héritage
AssemblyVersionAttribute
Attributs

Exemples

L’exemple suivant utilise l’attribut AssemblyVersionAttribute pour affecter un numéro de version à un assembly. Au moment de la compilation, ces informations de version sont stockées avec les métadonnées de l’assembly. Au moment de l’exécution, l’exemple récupère la valeur de la Type.Assembly propriété sur un type trouvé dans l’assembly pour obtenir une référence à l’assembly en cours d’exécution et récupère les informations de version de l’assembly à partir de la Version propriété de l’objet AssemblyName retourné par la Assembly.GetName méthode.

using System;
using System.Reflection;

[assembly:AssemblyVersionAttribute("2.0.1")]

public class Example1
{
   public static void Main()
   {
      Assembly thisAssem = typeof(Example1).Assembly;
      AssemblyName thisAssemName = thisAssem.GetName();
       
      Version ver = thisAssemName.Version;
       
      Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name);    
   }
}
// The example displays the following output:
//        This is version 2.0.1.0 of Example1.
Imports System.Reflection

<Assembly:AssemblyVersionAttribute("2.0.1")>
Module Example1
   Public Sub Main()
       Dim thisAssem As Assembly = GetType(Example1).Assembly
       Dim thisAssemName As AssemblyName = thisAssem.GetName()
       
       Dim ver As Version = thisAssemName.Version
       
       Console.WriteLine("This is version {0} of {1}.", ver, thisAssemName.Name)    
   End Sub
End Module
' The example displays the following output:
'      This is version 2.0.1.0 of Example1.

Remarques

L’attribut AssemblyVersionAttribute est utilisé pour affecter un numéro de version à un assembly. Ce numéro de version est ensuite stocké avec les métadonnées de l’assembly.

Le numéro de version de l’assembly fait partie de l’identité d’un assembly et joue un rôle clé dans la liaison à l’assembly et dans la stratégie de version. La stratégie de version par défaut pour le runtime est que les applications s’exécutent uniquement avec les versions avec lesquelles elles ont été générées et testées, sauf si elles sont remplacées par une stratégie de version explicite dans les fichiers de configuration (le fichier de configuration de l’application, le fichier de stratégie d’éditeur et le fichier de configuration administrateur de l’ordinateur). Pour plus d’informations, consultez Assemblys dans .NET .

Note

La vérification de la version n'est effectuée qu'avec les assemblys avec nom fort.

Le numéro de version comporte quatre parties, comme suit :

<version majeure>.<version mineure>.<numéro de build>.<révision>

Important

Tous les composants de la version doivent être des entiers supérieurs ou égaux à 0. Les métadonnées limitent les composants principaux, mineurs, de build et de révision d’un assembly à une valeur maximale de UInt16.MaxValue - 1. Si un composant dépasse cette valeur, une erreur de compilation se produit.

Par exemple, [assembly:AssemblyVersion("2.3.25.1")] indique 2 comme version principale, 3 comme version mineure, 25 comme numéro de build et 1 comme numéro de révision.

L’attribut AssemblyVersionAttribute vous permet de spécifier un astérisque (*) à la place du numéro de build ou de révision. Un numéro de version tel que [assembly:AssemblyVersion("1.2.*")] spécifie 1 comme version principale et 2 comme version mineure, et accepte les numéros de build et de révision par défaut. Un numéro de version tel que [assembly:AssemblyVersion("1.2.15.*")] spécifie 1 comme version principale, 2 comme version mineure, et 15 comme numéro de build, et accepte le numéro de révision par défaut. Le numéro de build par défaut incrémente quotidiennement. Le numéro de révision par défaut est le nombre de secondes depuis l’heure locale de minuit (sans tenir compte des ajustements de fuseau horaire pour l’heure d’été), divisé par 2. Si vous spécifiez un astérisque pour le numéro de build, vous ne pouvez pas spécifier de numéro de révision.

Important

Utilisation de l’attribut AssemblyVersionAttribute qui spécifie un astérisque :

  • Rend les sorties de build non reproductibles (voir builds reproductibles). Si le projet définit Deterministic la propriété de build sur true une erreur CS8357 est signalée par le compilateur.
  • Peut dégrader les performances de build, car elle empêche la génération de mettre en cache les sorties du compilateur.
  • N’est pas compatible avec les fonctionnalités Edit &Continue et Hot Reload .

Vous pouvez atténuer certains de ces problèmes en limitant l’utilisation des versions basées sur le temps pour libérer des builds à l’aide de la compilation conditionnelle, comme suit :

#if DEBUG
[assembly: AssemblyVersion("1.0.0.0")]
#else
[assembly: AssemblyVersion("1.0.*")]
#endif

Une meilleure approche du contrôle de version consiste à dériver l’assembly ou la version de fichier de la HEAD sha de validation (pour les référentiels Git). Consultez, par exemple, Nerdbank.GitVersioning.

Les versions principales et mineures de l’assembly sont utilisées comme numéro de version de la bibliothèque de types lorsque l’assembly est exporté. Certains hôtes COM n’acceptent pas les bibliothèques de types avec le numéro de version 0.0. Par conséquent, si vous souhaitez exposer un assembly à des clients COM, définissez explicitement la version de l’assembly sur la version 1.0 dans la AssemblyVersionAttribute page des projets créés en dehors de Visual Studio 2005 et sans AssemblyVersionAttribute spécification spécifiée. Effectuez cette opération même lorsque la version de l’assembly est 0.0. Tous les projets créés dans Visual Studio 2005 ont une version d’assembly par défaut de 1.0.*.

Pour obtenir le nom d’un assembly que vous avez chargé, appelez GetName l’assembly pour obtenir un AssemblyName, puis obtenez la Version propriété. Pour obtenir le nom d’un assembly que vous n’avez pas chargé, appelez GetAssemblyName à partir de votre application cliente pour vérifier la version de l’assembly utilisée par votre application.

L’attribut AssemblyVersionAttribute ne peut être appliqué qu’une seule fois. Certains modèles de projet Visual Studio incluent déjà l’attribut. Dans ces projets, l’ajout de l’attribut dans le code provoque une erreur du compilateur.

Constructeurs

Nom Description
AssemblyVersionAttribute(String)

Initialise une nouvelle instance de la AssemblyVersionAttribute classe avec le numéro de version de l’assembly attribué.

Propriétés

Nom Description
TypeId

En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute.

(Hérité de Attribute)
Version

Obtient le numéro de version de l’assembly attribué.

Méthodes

Nom Description
Equals(Object)

Retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
GetHashCode()

Retourne le code de hachage pour cette instance.

(Hérité de Attribute)
GetType()

Obtient la Type de l’instance actuelle.

(Hérité de Object)
IsDefaultAttribute()

En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée.

(Hérité de Attribute)
Match(Object)

En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié.

(Hérité de Attribute)
MemberwiseClone()

Crée une copie superficielle du Objectactuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l’objet actuel.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.

(Hérité de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface.

(Hérité de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1).

(Hérité de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fournit l’accès aux propriétés et méthodes exposées par un objet.

(Hérité de Attribute)

S’applique à

Voir aussi