Version Version Version Version Class

Определение

Представляет номер версии сборки, операционной системы или среды CLR.Represents the version number of an assembly, operating system, or the common language runtime. Этот класс не наследуется.This class cannot be inherited.

public ref class Version sealed : ICloneable, IComparable, IComparable<Version ^>, IEquatable<Version ^>
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public sealed class Version : ICloneable, IComparable, IComparable<Version>, IEquatable<Version>
type Version = class
    interface ICloneable
    interface IComparable
    interface IComparable<Version>
    interface IEquatable<Version>
Public NotInheritable Class Version
Implements ICloneable, IComparable, IComparable(Of Version), IEquatable(Of Version)
Наследование
VersionVersionVersionVersion
Атрибуты
Реализации

Примеры

В следующем примере используется AssemblyVersionAttribute атрибут, чтобы назначить номер версии сборки.The following example uses the AssemblyVersionAttribute attribute to assign a version number to an assembly. Во время компиляции эти сведения хранятся в метаданных сборки.At compile time, this version information is stored with the assembly's metadata. Во время выполнения, в примере извлекается значение Type.Assembly найти свойство типа в сборке, чтобы получить ссылку на выполняющейся сборки, и он извлекает сведения о версии сборки из Version свойство AssemblyName Объект, возвращаемый Assembly.GetName метод.At run time, the example retrieves the value of the Type.Assembly property on a type found in the assembly to get a reference to the executing assembly, and it retrieves the assembly's version information from the Version property of the AssemblyName object returned by the Assembly.GetName method.

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.

Комментарии

Номера версий состоят из двух до четырех компонентов: основной, дополнительный номер сборки и редакции.Version numbers consist of two to four components: major, minor, build, and revision. Требуются компоненты основной и дополнительный; компоненты сборки и редакции являются необязательными, но компонент сборки является обязательным, если определенный компонент-редакцию.The major and minor components are required; the build and revision components are optional, but the build component is required if the revision component is defined. Все определенные компоненты должны быть целыми числами, больше или равно 0.All defined components must be integers greater than or equal to 0. Ниже приведен формат номера версии (необязательные компоненты заключены в квадратные скобки ([и]):The format of the version number is as follows (optional components are shown in square brackets ([ and ]):

Основные. дополнительный номер[. Построение[. версия]]major.minor[.build[.revision]]

Компоненты используются следующим образом:The components are used by convention as follows:

  • Основные: Сборки с тем же именем, но разные основные версии не являются взаимозаменяемыми.Major: Assemblies with the same name but different major versions are not interchangeable. Более высокий номер версии может означать серьезной переработкой продукта, где нельзя предполагать обратной совместимости.A higher version number might indicate a major rewrite of a product where backward compatibility cannot be assumed.

  • Дополнительный номер: Если имя и основной номер версии двух сборок совпадают, но отличается дополнительный номер версии, это означает существенное улучшение с целью обеспечения обратной совместимости.Minor: If the name and major version number on two assemblies are the same, but the minor version number is different, this indicates significant enhancement with the intention of backward compatibility. Это более поздней версии дополнительный номер версии может означать релизе продукта или полной обратной совместимостью новой версии продукта.This higher minor version number might indicate a point release of a product or a fully backward-compatible new version of a product.

  • Сборка: Разница в номер сборки представляет перекомпиляция одного источника.Build: A difference in build number represents a recompilation of the same source. При изменении процессора, платформы или компилятора, могут использоваться разные номера сборки.Different build numbers might be used when the processor, platform, or compiler changes.

  • Версия: Сборки с тем же именем, основной и промежуточной номера версий, но разные версии должны быть полностью взаимозаменяемыми.Revision: Assemblies with the same name, major, and minor version numbers but different revisions are intended to be fully interchangeable. Более высокий номер версии может использоваться в сборку, которую устраняет брешь в системе безопасности в ранее выпущенной сборки.A higher revision number might be used in a build that fixes a security hole in a previously released assembly.

Последующие версии сборки, которые отличаются только номерами построения и редакции, считаются исправлениями предыдущей версии.Subsequent versions of an assembly that differ only by build or revision numbers are considered to be Hotfix updates of the prior version.

Важно!

Значение Version свойства, которые не были назначены явно значение является неопределенным (-1).The value of Version properties that have not been explicitly assigned a value is undefined (-1).

Начиная с .NET Framework 2.0, MajorRevision и MinorRevision свойства позволяют определить временные версию приложения, например, исправляет ошибку, пока вы можете выпустить постоянного решения.Starting with .NET Framework 2.0, the MajorRevision and MinorRevision properties enable you to identify a temporary version of your application that, for example, corrects a problem until you can release a permanent solution. Кроме того, операционная система Windows NT использует MajorRevision свойство для кодирования номер пакета обновления.Furthermore, the Windows NT operating system uses the MajorRevision property to encode the service pack number.

Присвоение сведения о версии сборкиAssigning Version Information to Assemblies

Как правило Version класс не используется для присвоения номера версии сборки.Ordinarily, the Version class is not used to assign a version number to an assembly. Вместо этого AssemblyVersionAttribute класс используется для определения версии сборки, как показано в примере в этом разделе.Instead, the AssemblyVersionAttribute class is used to define an assembly's version, as illustrated by the example in this topic.

Получение сведений о версииRetrieving Version Information

Version объекты часто используются для хранения сведений о версии, о некоторых компонентов системы или приложения (например, операционная система), среда CLR, исполняемый файл текущего приложения или конкретной сборки.Version objects are most frequently used to store version information about some system or application component (such as the operating system), the common language runtime, the current application's executable, or a particular assembly. В следующих примерах показаны некоторые из наиболее распространенных сценариев:The following examples illustrate some of the most common scenarios:

  • Извлечение версии операционной системы.Retrieving the operating system version. В следующем примере используется OperatingSystem.Version свойства, чтобы получить номер версии операционной системы.The following example uses the OperatingSystem.Version property to retrieve the version number of the operating system.

    // 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())
    
  • Извлечение версии среды CLR.Retrieving the version of the common language runtime. В следующем примере используется Environment.Version свойства, чтобы получить информацию о среда CLR версии.The following example uses the Environment.Version property to retrieve version information about the 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())
    
  • Получение текущего приложения по версии сборки.Retrieving the current application's assembly version. В следующем примере используется Assembly.GetEntryAssembly метод для получения ссылки на Assembly объект, представляющий исполняемый файл приложения, а затем получает его номер версии сборки.The following example uses the Assembly.GetEntryAssembly method to obtain a reference to an Assembly object that represents the application executable and then retrieves its assembly version number.

    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
    
  • Получение версии сборки для текущей сборки.Retrieving the current assembly's assembly version. В следующем примере используется Type.Assembly свойство для получения ссылки на Assembly объект, представляющий сборку, которая содержит точку входа приложения, а затем извлекаются сведения о его версии.The following example uses the Type.Assembly property to obtain a reference to an Assembly object that represents the assembly that contains the application entry point, and then retrieves its version information.

    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
    
  • Извлечение версии данной сборки.Retrieving the version of a specific assembly. В следующем примере используется Assembly.ReflectionOnlyLoadFrom метод для получения ссылки на Assembly объект, который имеет имя определенного файла, а затем извлекаются сведения о его версии.The following example uses the Assembly.ReflectionOnlyLoadFrom method to obtain a reference to an Assembly object that has a particular file name, and then retrieves its version information. Обратите внимание, что для создания экземпляра также существует несколько других методов Assembly объекта по имени файла или по строгому имени.Note that several other methods also exist to instantiate an Assembly object by file name or by strong name.

    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
    
  • Получение версии публикации приложения ClickOnce.Retrieving the Publish Version of a ClickOnce application. В следующем примере используется ApplicationDeployment.CurrentVersion свойство для отображения версии публикации приложения.The following example uses the ApplicationDeployment.CurrentVersion property to display an application's Publish Version. Обратите внимание на то, что его успешного выполнения требуется удостоверение приложения данного примера устанавливаемое значение.Note that its successful execution requires the example's application identity to be set. Это обрабатывается автоматически мастер публикации Visual Studio.This is handled automatically by the Visual Studio Publish Wizard.

    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
    

    Важно!

    Версия публикации приложения для развертывания ClickOnce не полностью зависит от его версии сборки.The Publish Version of an application for ClickOnce deployment is completely independent of its assembly version.

Сравнение версий объектовComparing Version Objects

Можно использовать CompareTo метод, чтобы определить, является ли одно Version объект предшествует, совпадает или расположен позже, чем второй Version объекта.You can use the CompareTo method to determine whether one Version object is earlier than, the same as, or later than a second Version object. Следующий пример показывает, что версии 2.1 более поздней, чем версия 2.0.The following example indicates that Version 2.1 is later than 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.

Две версии равными, основной и вспомогательный, сборки и номер редакции первого Version объект должен быть идентична семантике второго Version объекта.For two versions to be equal, the major, minor, build, and revision numbers of the first Version object must be identical to those of the second Version object. Если номер построения или редакции Version объекта не определено, Version объект считается более ранней, чем Version объекта, сборки или номер редакции, равном нулю.If the build or revision number of a Version object is undefined, that Version object is considered to be earlier than a Version object whose build or revision number is equal to zero. В следующем примере показано это путем сравнения трех Version объекты, которые имеют неопределенные версии компонентов.The following example illustrates this by comparing three Version objects that have undefined version components.

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

Конструкторы

Version() Version() Version() Version()

Инициализирует новый экземпляр класса Version.Initializes a new instance of the Version class.

Version(Int32, Int32) Version(Int32, Int32) Version(Int32, Int32) Version(Int32, Int32)

Инициализирует новый экземпляр класса Version с помощью указанных основного и дополнительного номеров версии.Initializes a new instance of the Version class using the specified major and minor values.

Version(Int32, Int32, Int32) Version(Int32, Int32, Int32) Version(Int32, Int32, Int32) Version(Int32, Int32, Int32)

Инициализирует новый экземпляр класса Version с помощью указанных основного и дополнительного номеров версии и номера построения.Initializes a new instance of the Version class using the specified major, minor, and build values.

Version(Int32, Int32, Int32, Int32) Version(Int32, Int32, Int32, Int32) Version(Int32, Int32, Int32, Int32) Version(Int32, Int32, Int32, Int32)

Инициализирует новый экземпляр класса Version с помощью указанных основного и дополнительного номеров версии, номера построения и номера редакции.Initializes a new instance of the Version class with the specified major, minor, build, and revision numbers.

Version(String) Version(String) Version(String) Version(String)

Инициализирует новый экземпляр класса Version, используя указанную строку.Initializes a new instance of the Version class using the specified string.

Свойства

Build Build Build Build

Возвращает значение компонента текущего объекта Version, представляющего в номере версии номер построения.Gets the value of the build component of the version number for the current Version object.

Major Major Major Major

Получает значение компонента текущего объекта Version, представляющего в номере версии основной номер.Gets the value of the major component of the version number for the current Version object.

MajorRevision MajorRevision MajorRevision MajorRevision

Возвращает старшие 16 разрядов номера редакции.Gets the high 16 bits of the revision number.

Minor Minor Minor Minor

Возвращает значение компонента текущего объекта Version, представляющего в номере версии дополнительный номер.Gets the value of the minor component of the version number for the current Version object.

MinorRevision MinorRevision MinorRevision MinorRevision

Возвращает младшие 16 разрядов номера редакции.Gets the low 16 bits of the revision number.

Revision Revision Revision Revision

Возвращает значение компонента текущего объекта Version, представляющего в номере версии номер редакции.Gets the value of the revision component of the version number for the current Version object.

Методы

Clone() Clone() Clone() Clone()

Возвращает новый объект Version, значение которого совпадает со значением текущего объекта Version.Returns a new Version object whose value is the same as the current Version object.

CompareTo(Object) CompareTo(Object) CompareTo(Object) CompareTo(Object)

Сравнивает текущий объект Version с заданным объектом и возвращает сведения об их относительных значениях.Compares the current Version object to a specified object and returns an indication of their relative values.

CompareTo(Version) CompareTo(Version) CompareTo(Version) CompareTo(Version)

Сравнивает текущий объект Version с заданным объектом Version и возвращает сведения об их относительных значениях.Compares the current Version object to a specified Version object and returns an indication of their relative values.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Возвращает значение, позволяющее определить, равен ли текущий объект Version указанному.Returns a value indicating whether the current Version object is equal to a specified object.

Equals(Version) Equals(Version) Equals(Version) Equals(Version)

Возвращает значение, позволяющее определить, представляют ли текущий объект Version и заданный объект Version одно и то же значение.Returns a value indicating whether the current Version object and a specified Version object represent the same value.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Возвращает хэш-код для текущего объекта Version.Returns a hash code for the current Version object.

GetType() GetType() GetType() GetType()

Возвращает объект Type для текущего экземпляра.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Parse(ReadOnlySpan<Char>) Parse(ReadOnlySpan<Char>) Parse(ReadOnlySpan<Char>) Parse(ReadOnlySpan<Char>)
Parse(String) Parse(String) Parse(String) Parse(String)

Преобразует строковое представление номера версии в эквивалентный объект Version.Converts the string representation of a version number to an equivalent Version object.

ToString() ToString() ToString() ToString()

Преобразует значение текущего объекта Version в эквивалентное ему представление String.Converts the value of the current Version object to its equivalent String representation.

ToString(Int32) ToString(Int32) ToString(Int32) ToString(Int32)

Преобразует значение текущего объекта Version в эквивалентное ему представление String.Converts the value of the current Version object to its equivalent String representation. Заданное количество обозначает число возвращаемых компонент.A specified count indicates the number of components to return.

TryFormat(Span<Char>, Int32) TryFormat(Span<Char>, Int32) TryFormat(Span<Char>, Int32) TryFormat(Span<Char>, Int32)
TryFormat(Span<Char>, Int32, Int32) TryFormat(Span<Char>, Int32, Int32) TryFormat(Span<Char>, Int32, Int32) TryFormat(Span<Char>, Int32, Int32)
TryParse(ReadOnlySpan<Char>, Version) TryParse(ReadOnlySpan<Char>, Version) TryParse(ReadOnlySpan<Char>, Version) TryParse(ReadOnlySpan<Char>, Version)
TryParse(String, Version) TryParse(String, Version) TryParse(String, Version) TryParse(String, Version)

Предпринимает попытку преобразования строкового представления номера версии в эквивалентный объект Version и возвращает значение, позволяющее определить, успешно ли выполнено преобразование.Tries to convert the string representation of a version number to an equivalent Version object, and returns a value that indicates whether the conversion succeeded.

Операторы

Equality(Version, Version) Equality(Version, Version) Equality(Version, Version) Equality(Version, Version)

Определение равенства двух заданных объектов Version.Determines whether two specified Version objects are equal.

GreaterThan(Version, Version) GreaterThan(Version, Version) GreaterThan(Version, Version) GreaterThan(Version, Version)

Определяет, действительно ли значение первого указанного объекта Version больше значения второго указанного объекта Version.Determines whether the first specified Version object is greater than the second specified Version object.

GreaterThanOrEqual(Version, Version) GreaterThanOrEqual(Version, Version) GreaterThanOrEqual(Version, Version) GreaterThanOrEqual(Version, Version)

Определяет, является ли значение первого указанного объекта Version большим или равным значению второго указанного объекта Version.Determines whether the first specified Version object is greater than or equal to the second specified Version object.

Inequality(Version, Version) Inequality(Version, Version) Inequality(Version, Version) Inequality(Version, Version)

Определение неравенства двух заданных объектов Version.Determines whether two specified Version objects are not equal.

LessThan(Version, Version) LessThan(Version, Version) LessThan(Version, Version) LessThan(Version, Version)

Определяет, меньше ли значение первого указанного объекта Version, чем значение второго указанного объекта Version.Determines whether the first specified Version object is less than the second specified Version object.

LessThanOrEqual(Version, Version) LessThanOrEqual(Version, Version) LessThanOrEqual(Version, Version) LessThanOrEqual(Version, Version)

Определяет, действительно ли значение первого указанного объекта Version меньше или равно значению второго указанного объекта Version.Determines whether the first specified Version object is less than or equal to the second Version object.

Явные реализации интерфейса

IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object) IComparable.CompareTo(Object)

Применяется к