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 avec attributs.
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 attribuer 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 attribuer 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 du runtime est la suivante : les applications s'exécutent uniquement avec les versions dans lesquelles elles ont été générées et testées, sauf en cas de substitution par une stratégie de version explicite dans des fichiers de configuration (le fichier de configuration de l'application, le fichier de stratégie de l'éditeur et le fichier de configuration de l'administrateur de l'ordinateur). Pour plus d’informations, consultez Assemblys dans .NET .
Notes
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 nombre de build par défaut s’incrémente quotidiennement. Le numéro de révision par défaut est le nombre de secondes depuis minuit heure locale (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 surtrue
une erreurCS8357
est signalée par le compilateur. - Peut dégrader les performances de build, car cela empêche la build de mettre en cache les sorties du compilateur.
- Est incompatible avec les fonctionnalités Modifier & Continuer et Rechargement à chaud.
Vous pouvez atténuer certains de ces problèmes en limitant l’utilisation des versions basées sur le temps pour publier 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 à partir du HEAD
SHA de validation (pour les dépôts Git). Consultez, par exemple, Nerdbank.GitVersioning.
Les versions principale et secondaire 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 1.0 dans la page pour les AssemblyVersionAttribute
projets créés en dehors de Visual Studio 2005 et sans AssemblyVersionAttribute
aucun spécifié. 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 1.0.*.
Pour obtenir le nom d’un assembly que vous avez chargé, appelez GetName sur 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 case activée la version de l’assembly que votre application utilise.
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 de compilateur.
Constructeurs
AssemblyVersionAttribute(String) |
Initialise une nouvelle instance de la classe |
Propriétés
TypeId |
Lors de l'implémentation dans une classe dérivée, obtient un identificateur unique pour l'objet Attribute. (Hérité de Attribute) |
Version |
Obtient le numéro de version de l'assembly avec attributs. |
Méthodes
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 de cette instance. (Hérité de Attribute) |
GetType() |
Obtient le 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 pour la classe dérivée. (Hérité de Attribute) |
Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur indiquant si cette instance équivaut à un objet spécifié. (Hérité de Attribute) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
_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 pour 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 aux méthodes exposées par un objet. (Hérité de Attribute) |