AssemblyVersionAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
- 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
Deterministicla propriété de build surtrueune erreurCS8357est 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 |
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) |