Version 클래스

정의

어셈블리, 운영 체제 또는 공용 언어 런타임의 버전 번호를 나타냅니다. 이 클래스는 상속될 수 없습니다.

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
상속
Version
특성
구현

예제

다음 예제에서는 특성을 사용하여 AssemblyVersionAttribute 어셈블리에 버전 번호를 할당합니다. 컴파일 시간에 이 버전 정보는 어셈블리의 메타데이터와 함께 저장됩니다. 런타임에 예제에서는 Type.Assembly 어셈블리에 있는 형식의 속성 값을 검색하여 실행 중인 어셈블리에 대한 참조를 가져와서 Version 메서드에서 반환된 개체의 속성에서 어셈블리의 버전 정보를 AssemblyName Assembly.GetName 검색합니다.

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.

설명

버전 번호는 주 버전, 부 버전, 빌드 및 수정 버전 등 2~4개의 구성 요소로 구성됩니다. 주 구성 요소와 부 구성 요소가 필요합니다. 빌드 및 수정 버전 구성 요소는 선택 사항이지만 수정 버전 구성 요소가 정의된 경우 빌드 구성 요소가 필요합니다. 정의된 모든 구성 요소는 0보다 크거나 같은 정수여야 합니다. 버전 번호의 형식은 다음과 같습니다(선택적 구성 요소는 대괄호([ 및 ])로 표시됨).

입니다. minor[.build[.수정 버전]]

구성 요소는 다음과 같이 규칙에 따라 사용됩니다.

  • 주: 이름이 같지만 주 버전이 다른 어셈블리는 서로 교환할 수 없습니다. 버전 번호가 높을수록 이전 버전과의 호환성을 가정할 수 없는 제품의 주요 재작성이 표시될 수 있습니다.

  • 부: 두 어셈블리의 이름과 주 버전 번호가 같지만 부 버전 번호가 다른 경우 이전 버전과의 호환성을 위해 크게 향상되었음을 나타냅니다. 이 부 버전 번호가 높을수록 제품의 포인트 릴리스 또는 이전 버전과 완전히 호환되는 새 버전의 제품이 표시될 수 있습니다.

  • 빌드: 빌드 번호의 차이는 동일한 소스의 다시 컴파일을 나타냅니다. 프로세서, 플랫폼 또는 컴파일러가 변경될 때 다른 빌드 번호를 사용할 수 있습니다.

  • 수정 버전: 이름, 주 버전 및 부 버전 번호가 같지만 수정 버전이 다른 어셈블리는 완전히 서로 교환할 수 있습니다. 이전에 릴리스된 어셈블리의 보안 허점을 수정하는 빌드에서 더 높은 수정 번호를 사용할 수 있습니다.

빌드 또는 수정 번호만 다른 어셈블리의 후속 버전은 이전 버전의 핫픽스 업데이트로 간주됩니다.

중요

Version값이 명시적으로 할당되지 않은 속성의 값은 정의되지 않습니다(-1).

.NET Framework 2.0을 시작 합니다 MajorRevisionMinorRevision 속성을 사용 하면 예를 들어, 영구적인 해결책에 놓을 때까지 문제를 해결 하는 애플리케이션의 임시 버전을 식별 합니다. 또한 Windows NT 운영 체제에서는 속성을 사용하여 MajorRevision 서비스 팩 번호를 인코딩합니다.

어셈블리에 버전 정보 할당

일반적으로 Version 클래스는 어셈블리에 버전 번호를 할당하는 데 사용되지 않습니다. 대신 AssemblyVersionAttribute 클래스는 이 항목의 예제에 설명된 대로 어셈블리의 버전을 정의하는 데 사용됩니다.

버전 정보 검색

Version 개체는 가장 자주 일부 시스템 또는 애플리케이션 구성 요소 (예: 운영 체제), 공용 언어 런타임, 현재 애플리케이션의 실행 파일 또는 특정 어셈블리에 대 한 버전 정보를 저장 하는 데 사용 됩니다. 다음 예제에서는 가장 일반적인 몇 가지 시나리오를 보여 줍니다.

  • 운영 체제 버전 검색 다음 예제에서는 OperatingSystem.Version 속성을 사용하여 운영 체제의 버전 번호를 검색합니다.

    // 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())
    
  • 공용 언어 런타임의 버전 검색 다음 예제에서는 Environment.Version 속성을 사용하여 공용 언어 런타임에 대한 버전 정보를 검색합니다.

    // 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())
    
  • 현재 애플리케이션의 어셈블리 버전을 검색합니다. 다음 예제에서는 합니다 Assembly.GetEntryAssembly 에 대 한 참조를 얻는 메서드를는 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
    
  • 현재 어셈블리의 어셈블리 버전 검색 다음 예제에서는 합니다 Type.Assembly 속성에 대 한 참조를 가져오려면는 Assembly 애플리케이션 진입점을 포함 하 고 그런 다음 해당 버전 정보를 검색 하는 어셈블리를 나타내는 개체입니다.

    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
    
  • 특정 어셈블리의 버전 검색 다음 예제에서는 Assembly.ReflectionOnlyLoadFrom 메서드를 사용하여 특정 파일 이름을 가진 개체에 대한 Assembly 참조를 가져온 다음 해당 버전 정보를 검색합니다. 파일 이름 또는 강력한 이름으로 개체를 인스턴스화하기 위한 몇 가지 다른 메서드도 Assembly 있습니다.

    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 애플리케이션의 게시 버전을 검색 합니다. 다음 예제에서는 ApplicationDeployment.CurrentVersion 속성을 애플리케이션의 게시 버전을 표시 합니다. 성공적으로 실행 예제의 애플리케이션 id를 설정할 필요는 note 합니다. 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
    

    중요

    ClickOnce 배포를 위한 애플리케이션의 게시 버전은 완전히 별개의 어셈블리 버전입니다.

버전 개체 비교

메서드를 사용하여 CompareToVersion 개체가 두 번째 개체보다 이전인지, 같은지 또는 이후인지 확인할 수 Version 있습니다. 다음 예제에서는 버전 2.1이 버전 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 합니다. 개체의 빌드 또는 수정 Version 번호가 정의되지 않은 경우 해당 Version 개체는 Version 빌드 또는 수정 번호가 0인 개체보다 이전인 것으로 간주됩니다. 다음 예제에서는 정의되지 않은 버전 구성 요소가 있는 세 개의 개체를 비교하여 이를 보여 Version 줍니다.

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(Int32, Int32)

지정된 주 버전 및 부 버전 값을 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.

Version(Int32, Int32, Int32)

지정된 주 버전, 부 버전 및 빌드 버전 값을 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.

Version(Int32, Int32, Int32, Int32)

지정된 주 버전, 부 버전, 빌드 버전 및 수정 버전 번호를 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.

Version(String)

지정된 문자열을 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.

속성

Build

현재 Version 개체에 대한 버전 번호의 빌드 버전 구성 요소 값을 가져옵니다.

Major

현재 Version 개체에 대한 버전 번호의 주 버전 구성 요소 값을 가져옵니다.

MajorRevision

수정 버전 번호의 상위 16비트를 가져옵니다.

Minor

현재 Version 개체에 대한 버전 번호의 부 버전 구성 요소 값을 가져옵니다.

MinorRevision

수정 버전 번호의 하위 16비트를 가져옵니다.

Revision

현재 Version 개체에 대한 버전 번호의 수정 버전 구성 요소 값을 가져옵니다.

메서드

Clone()

현재 Version 개체와 같은 값을 갖는 새 Version 개체를 반환합니다.

CompareTo(Object)

현재 Version 개체를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.

CompareTo(Version)

현재 Version 개체를 지정된 Version 개체와 비교하여 상대 값의 표시를 반환합니다.

Equals(Object)

현재 Version 개체가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다.

Equals(Version)

현재 Version 개체와 지정된 Version 개체의 값이 같은지 여부를 나타내는 값을 반환합니다.

GetHashCode()

현재 Version 개체의 해시 코드를 반환합니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Parse(ReadOnlySpan<Char>)

동등한 Version 개체에 대해 버전 번호를 나타내는 문자의 지정된 읽기 전용 범위를 변환합니다.

Parse(String)

버전 번호의 문자열 표현을 해당하는 Version 개체로 변환합니다.

ToString()

현재 Version 개체의 값을 해당하는 String 표현으로 변환합니다.

ToString(Int32)

현재 Version 개체의 값을 해당하는 String 표현으로 변환합니다. 지정된 개수는 반환할 구성 요소의 수를 나타냅니다.

TryFormat(Span<Char>, Int32)

이 버전 인스턴스의 형식을 문자 범위로 지정합니다.

TryFormat(Span<Char>, Int32, Int32)

이 버전 인스턴스의 형식을 문자 범위로 지정합니다.

TryParse(ReadOnlySpan<Char>, Version)

동등한 Version 개체에 대해 버전 번호를 나타내는 지정된 문자의 읽기 전용 범위를 변환하려고 시도하고, 변환에 성공했는지 여부를 나타내는 값을 반환합니다.

TryParse(String, Version)

버전 번호의 문자열 표현을 해당하는 Version 개체로 변환하려고 시도하고, 변환에 성공했는지 여부를 나타내는 값을 반환합니다.

연산자

Equality(Version, Version)

지정된 두 Version 개체가 같은지 여부를 확인합니다.

GreaterThan(Version, Version)

지정된 첫 번째 Version 개체가 지정된 두 번째 Version 개체보다 큰지 여부를 확인합니다.

GreaterThanOrEqual(Version, Version)

지정된 첫 번째 Version 개체가 지정된 두 번째 Version 개체보다 크거나 같은지 여부를 확인합니다.

Inequality(Version, Version)

지정된 두 Version 개체가 같지 않은지 여부를 확인합니다.

LessThan(Version, Version)

지정된 첫 번째 Version 개체가 지정된 두 번째 Version 개체보다 작은지 여부를 확인합니다.

LessThanOrEqual(Version, Version)

지정된 첫 번째 Version 개체가 두 번째 Version 개체보다 작거나 같은지 여부를 확인합니다.

명시적 인터페이스 구현

IComparable.CompareTo(Object)

현재 Version 개체를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.

IFormattable.ToString(String, IFormatProvider)

지정된 형식을 사용하여 현재 인스턴스 값의 형식을 지정합니다.

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

현재 인스턴스의 값을 제공 된 문자 범위로 서식 지정 하려고 시도 합니다.

적용 대상