Version Classe

Définition

Représente le numéro de version d'un assembly, d'un système d'exploitation ou du Common Language Runtime. Cette classe ne peut pas être héritée.

public ref class Version sealed : IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>
public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>, ISpanFormattable
public ref class Version sealed : ICloneable, IComparable
public sealed class Version : IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>, ISpanFormattable
[System.Serializable]
public sealed class Version : ICloneable, IComparable
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
type Version = class
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface ISpanFormattable
    interface IFormattable
type Version = class
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
    interface ICloneable
[<System.Serializable>]
type Version = class
    interface ICloneable
    interface IComparable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
Public NotInheritable Class Version
Implements IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version), ISpanFormattable
Public NotInheritable Class Version
Implements ICloneable, IComparable
Héritage
Version
Attributs
Implémente

Exemples

L’exemple suivant utilise l' AssemblyVersionAttribute attribut pour assigner 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' AssemblyName objet 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

Les numéros de version sont composés de deux à quatre composants : principal, secondaire, Build et révision. Les composants majeurs et mineurs sont requis. les composants de génération et de révision sont facultatifs, mais le composant de build est requis si le composant de révision est défini. Tous les composants définis doivent être des entiers supérieurs ou égaux à 0. Le format du numéro de version est le suivant (les composants facultatifs sont indiqués entre crochets ([et]) :

majeure. Minor[.Build[.révision]]

Les composants sont utilisés par convention comme suit :

  • Majeure: les assemblys portant le même nom mais des versions principales différentes ne sont pas interchangeables. Un numéro de version plus élevé peut indiquer une réécriture majeure d’un produit pour lequel la compatibilité descendante ne peut pas être utilisée.

  • Mineure: si le nom et le numéro de version principale de deux assemblys sont identiques, mais que le numéro de version mineure est différent, cela indique une amélioration significative avec l’intention de la compatibilité descendante. Ce numéro de version mineure plus élevé peut indiquer une version de point d’un produit ou une nouvelle version entièrement à compatibilité descendante d’un produit.

  • Build: une différence dans le numéro de build représente une recompilation de la même source. Des numéros de build différents peuvent être utilisés lorsque le processeur, la plateforme ou le compilateur change.

  • Révision: les assemblys portant le même nom, le même numéro de version principale et le même numéro de version mineure mais des révisions différentes sont destinés à être totalement interchangeables. Un numéro de révision plus élevé peut être utilisé dans une build qui résout une faille de sécurité dans un assembly précédemment publié.

Les versions ultérieures d’un assembly qui diffèrent uniquement par les numéros de build ou de révision sont considérées comme des mises à jour de correctifs de la version antérieure.

Important

La valeur des Version propriétés qui n’ont pas été explicitement affectées à une valeur est non définie (-1).

à compter de .NET Framework 2,0, MajorRevision les MinorRevision propriétés et vous permettent d’identifier une version temporaire de votre application qui, par exemple, corrige un problème jusqu’à ce que vous puissiez libérer une solution permanente. En outre, le système d’exploitation Windows NT utilise la MajorRevision propriété pour encoder le nombre de Service Pack.

Assigner des informations de version à des assemblys

En règle générale, la Version classe n’est pas utilisée pour assigner un numéro de version à un assembly. Au lieu de AssemblyVersionAttribute cela, la classe est utilisée pour définir la version d’un assembly, comme illustré dans l’exemple de cette rubrique.

Récupération des informations de version

Version les objets sont fréquemment utilisés pour stocker des informations de version sur un composant système ou d’application (tel que le système d’exploitation), le common language runtime, l’exécutable de l’application actuelle ou un assembly particulier. Les exemples suivants illustrent certains des scénarios les plus courants :

  • Récupération de la version du système d’exploitation. L’exemple suivant utilise la OperatingSystem.Version propriété pour récupérer le numéro de version du système d’exploitation.

    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = os.Version;
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString());
    
    ' Get the operating system version.
    Dim os As OperatingSystem = Environment.OSVersion
    Dim ver As Version = os.Version
    Console.WriteLine("Operating System: {0} ({1})", os.VersionString, ver.ToString())
    
  • Récupération de la version de la common language runtime. L’exemple suivant utilise la Environment.Version propriété pour récupérer des informations de version sur le Common Language Runtime.

    // Get the common language runtime version.
    Version ver = Environment.Version;
    Console.WriteLine("CLR Version {0}", ver.ToString());
    
    ' Get the common language runtime version.
    Dim ver As Version = Environment.Version
    Console.WriteLine("CLR Version {0}", ver.ToString())
    
  • Récupération de la version de l’assembly de l’application actuelle. L’exemple suivant utilise la Assembly.GetEntryAssembly méthode pour obtenir une référence à un Assembly objet qui représente l’exécutable de l’application, puis récupère son numéro de version de l’assembly.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of the executing assembly (that is, this assembly).
          Assembly assem = Assembly.GetEntryAssembly();
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of the executing assembly (that is, this assembly).
          Dim assem As Assembly = Assembly.GetEntryAssembly()
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("Application {0}, Version {1}", assemName.Name, ver.ToString())
       End Sub
    End Module
    
  • Récupération de la version d’assembly de l’assembly actuel. L’exemple suivant utilise la Type.Assembly propriété pour obtenir une référence à un Assembly objet qui représente l’assembly qui contient le point d’entrée de l’application, puis récupère ses informations de version.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of the current assembly.
          Assembly assem = typeof(Example).Assembly;
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of the current assembly.
          Dim assem As Assembly = GetType(Example).Assembly
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())            VB
       End Sub
    End Module
    
  • Récupération de la version d’un assembly spécifique. L’exemple suivant utilise la Assembly.ReflectionOnlyLoadFrom méthode pour obtenir une référence à un Assembly objet qui a un nom de fichier particulier, puis récupère ses informations de version. Notez que plusieurs autres méthodes existent également pour instancier un Assembly objet par nom de fichier ou par nom fort.

    using System;
    using System.Reflection;
    
    public class Example
    {
       public static void Main()
       {
          // Get the version of a specific assembly.
          string filename = @".\StringLibrary.dll";
          Assembly assem = Assembly.ReflectionOnlyLoadFrom(filename);
          AssemblyName assemName = assem.GetName();
          Version ver = assemName.Version;
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString());
       }
    }
    
    Imports System.Reflection
    
    Module Example
       Public Sub Main()
          ' Get the version of a specific assembly.
          Dim filename As String = ".\StringLibrary.dll"
          Dim assem As Assembly = Assembly.ReflectionOnlyLoadFrom(filename)
          Dim assemName As AssemblyName = assem.GetName()
          Dim ver As Version = assemName.Version
          Console.WriteLine("{0}, Version {1}", assemName.Name, ver.ToString())
       End Sub
    End Module
    
  • récupération de la Version de publication d’une application ClickOnce. L’exemple suivant utilise la ApplicationDeployment.CurrentVersion propriété pour afficher la version de publication d’une application. Notez que son exécution réussie requiert la définition de l’identité d’application de l’exemple. cela est géré automatiquement par l’assistant publication de Visual Studio.

    using System;
    using System.Deployment.Application;
    
    public class Example
    {
       public static void Main()
       {
          Version ver = ApplicationDeployment.CurrentDeployment.CurrentVersion;
          Console.WriteLine("ClickOnce Publish Version: {0}", ver);
       }
    }
    
    Imports System.Deployment.Application
    
    Module Example
       Public Sub Main()
          Dim ver As Version = ApplicationDeployment.CurrentDeployment.CurrentVersion
          Console.WriteLine("ClickOnce Publish Version: {0}", ver)
       End Sub
    End Module
    

    Important

    la version de publication d’une application pour le déploiement de ClickOnce est complètement indépendante de la version de son assembly.

Comparaison d’objets version

Vous pouvez utiliser la CompareTo méthode pour déterminer si un Version objet est antérieur, identique ou ultérieur à un deuxième Version objet. L’exemple suivant indique que la version 2,1 est ultérieure à la version 2,0.

Version v1 = new Version(2, 0);
Version v2 = new Version("2.1");
Console.Write("Version {0} is ", v1);
switch(v1.CompareTo(v2))
{
   case 0:
      Console.Write("the same as");
      break;
   case 1:
      Console.Write("later than");
      break;
   case -1:
      Console.Write("earlier than");
      break;
}
Console.WriteLine(" Version {0}.", v2);                  
// The example displays the following output:
//       Version 2.0 is earlier than Version 2.1.
Dim v1 As New Version(2,0)
Dim v2 As New Version("2.1")
Console.Write("Version {0} is ", v1)
Select Case v1.CompareTo(v2)
   Case 0
      Console.Write("the same as")
   Case 1
      Console.Write("later than")
   Case -1
      Console.Write("earlier than")
End Select
Console.WriteLine(" Version {0}.", v2)                  
' The example displays the following output:
'       Version 2.0 is earlier than Version 2.1.

Pour que deux versions soient égales, les numéros de version principale, secondaire, de build et de révision du premier Version objet doivent être identiques à ceux du deuxième Version objet. Si le numéro de build ou de révision d’un Version objet n’est pas défini, cet Version objet est considéré comme antérieur à un Version objet dont le numéro de build ou de révision est égal à zéro. L’exemple suivant illustre cela en comparant trois Version objets qui ont des composants de version non définis.

using System;

enum VersionTime {Earlier = -1, Same = 0, Later = 1 };

public class Example
{
   public static void Main()
   {
      Version v1 = new Version(1, 1);
      Version v1a = new Version("1.1.0");
      ShowRelationship(v1, v1a);
      
      Version v1b = new Version(1, 1, 0, 0);
      ShowRelationship(v1b, v1a);
   }

   private static void ShowRelationship(Version v1, Version v2)
   {
      Console.WriteLine("Relationship of {0} to {1}: {2}", 
                        v1, v2, (VersionTime) v1.CompareTo(v2));       
   }
}
// The example displays the following output:
//       Relationship of 1.1 to 1.1.0: Earlier
//       Relationship of 1.1.0.0 to 1.1.0: Later
Public Enum VersionTime
   Earlier = -1
   Same = 0
   Later = 1
End Enum

Module Example
   Public Sub Main()
      Dim v1 As New Version(1, 1)
      Dim v1a As New Version("1.1.0")
      ShowRelationship(v1, v1a)
      
      Dim v1b As New Version(1, 1, 0, 0)
      ShowRelationship(v1b, v1a)
   End Sub

   Private Sub ShowRelationship(v1 As Version, v2 As Version)
      Console.WriteLine("Relationship of {0} to {1}: {2}", 
                        v1, v2, CType(v1.CompareTo(v2), VersionTime))       
   End Sub
End Module
' The example displays the following output:
'       Relationship of 1.1 to 1.1.0: Earlier
'       Relationship of 1.1.0.0 to 1.1.0: Later

Constructeurs

Version()

Initialise une nouvelle instance de la classe Version.

Version(Int32, Int32)

Initialise une nouvelle instance de la classe Version à l'aide des valeurs de numéros major et minor spécifiées.

Version(Int32, Int32, Int32)

Initialise une nouvelle instance de la classe Version à l'aide des valeurs de numéros major et minor spécifiées.

Version(Int32, Int32, Int32, Int32)

Initialise une nouvelle instance de la classe Version avec les numéros major, minor, build et revision spécifiés.

Version(String)

Initialise une nouvelle instance de la classe Version à l'aide de la chaîne spécifiée.

Propriétés

Build

Obtient la valeur du composant build du numéro de version de l'objet Version en cours.

Major

Obtient la valeur du composant principal du numéro de version de l'objet Version en cours.

MajorRevision

Obtient les 16 bits de poids fort du numéro de révision.

Minor

Obtient la valeur du composant secondaire du numéro de version de l'objet Version en cours.

MinorRevision

Obtient les 16 bits de poids faible du numéro de révision.

Revision

Obtient la valeur du composant révision du numéro de version de l'objet Version en cours.

Méthodes

Clone()

Retourne un nouvel objet Version dont la valeur est identique à celle de l'objet Version en cours.

CompareTo(Object)

Compare l'objet Version en cours à un objet spécifié et retourne une indication de leurs valeurs relatives.

CompareTo(Version)

Compare l'objet Version en cours à un objet Version spécifié et retourne une indication de leurs valeurs relatives.

Equals(Object)

Retourne une valeur indiquant si l'objet Version en cours est identique à un objet spécifié.

Equals(Version)

Retourne une valeur indiquant si l'objet Version en cours et un objet Version spécifié représentent la même valeur.

GetHashCode()

Retourne un code de hachage pour l'objet Version en cours.

GetType()

Obtient le Type de l'instance actuelle.

(Hérité de Object)
MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
Parse(ReadOnlySpan<Char>)

Convertit l’étendue de caractères en lecture seule spécifiée représentant un numéro de version en objet Version équivalent.

Parse(String)

Convertit la représentation sous forme de chaîne d'un numéro de version en un objet Version équivalent.

ToString()

Convertit la valeur de l'objet Version en cours en sa représentation String équivalente.

ToString(Int32)

Convertit la valeur de l'objet Version en cours en sa représentation String équivalente. Un nombre spécifié indique le nombre de composants à retourner.

TryFormat(Span<Char>, Int32)

Tente de convertir cette instance de version sous forme d’étendue de caractères.

TryFormat(Span<Char>, Int32, Int32)

Tente de convertir cette instance de version sous forme d’étendue de caractères.

TryParse(ReadOnlySpan<Char>, Version)

Essaie de convertir la représentation sous forme de d’étendue de caractères en lecture seule d’un numéro de version en un objet Version équivalent et retourne une valeur indiquant si la conversion a été effectuée.

TryParse(String, Version)

Essaie de convertir la représentation sous forme de chaîne d'un numéro de version en un objet Version équivalent et retourne une valeur indiquant si la conversion a réussi.

Opérateurs

Equality(Version, Version)

Détermine si deux objets Version spécifiés sont identiques.

GreaterThan(Version, Version)

Détermine si le premier objet Version spécifié est supérieur au second objet Version spécifié.

GreaterThanOrEqual(Version, Version)

Détermine si le premier objet Version spécifié est supérieur ou égal au second objet Version spécifié.

Inequality(Version, Version)

Détermine si deux objets Version spécifiés ne sont pas identiques.

LessThan(Version, Version)

Détermine si le premier objet Version spécifié est inférieur au second objet Version spécifié.

LessThanOrEqual(Version, Version)

Détermine si le premier objet Version spécifié est inférieur ou égal au second objet Version.

Implémentations d’interfaces explicites

IComparable.CompareTo(Object)

Compare l'objet Version en cours à un objet spécifié et retourne une indication de leurs valeurs relatives.

IFormattable.ToString(String, IFormatProvider)

Met en forme la valeur de l’instance actuelle en utilisant le format spécifié.

ISpanFormattable.TryFormat(Span<Char>, Int32, ReadOnlySpan<Char>, IFormatProvider)

Tente de mettre en forme la valeur de l’instance actuelle dans l’étendue de caractères fournie.

S’applique à