Version Класс

Определение

Представляет номер версии сборки, операционной системы или среды 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)
Наследование
Version
Атрибуты
Реализации

Примеры

В следующем примере атрибут 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.Initializes a new instance of the Version class.

Version(Int32, Int32)

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

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 с помощью указанных основного и дополнительного номеров версии, номера построения и номера редакции.Initializes a new instance of the Version class with the specified major, minor, build, and revision numbers.

Version(String)

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

Свойства

Build

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

Major

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

MajorRevision

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

Minor

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

MinorRevision

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

Revision

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

Методы

Clone()

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

CompareTo(Object)

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

CompareTo(Version)

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

Equals(Object)

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

Equals(Version)

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

GetHashCode()

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

GetType()

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

(Унаследовано от Object)
MemberwiseClone()

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

(Унаследовано от Object)
Parse(ReadOnlySpan<Char>)

Преобразует указанный диапазон символов только для чтения, представляющий номер версии, в эквивалентный объект Version.Converts the specified read-only span of characters that represents a version number to an equivalent Version object.

Parse(String)

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

ToString()

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

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)

Пытается отформатировать этот экземпляр версии в диапазон символов.Tries to format this version instance into a span of characters.

TryFormat(Span<Char>, Int32, Int32)

Пытается отформатировать этот экземпляр версии в диапазон символов.Tries to format this version instance into a span of characters.

TryParse(ReadOnlySpan<Char>, Version)

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

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)

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

GreaterThan(Version, Version)

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

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)

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

LessThan(Version, Version)

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

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)

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

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