정보
요청한 주제가 아래에 표시됩니다. 그러나 이 주제는 이 라이브러리에 포함되지 않습니다.

Version 클래스

2013-12-13

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

Namespace:  System
어셈블리:  mscorlib(mscorlib.dll)

public sealed class Version : IComparable, 
	IComparable<Version>, IEquatable<Version>

Version 형식에서는 다음과 같은 멤버를 노출합니다.

  이름설명
Public 메서드Version(String)지정된 문자열을 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.
Public 메서드Version(Int32, Int32)지정된 주 버전 및 부 버전 값을 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.
Public 메서드Version(Int32, Int32, Int32)지정된 주 버전, 부 버전 및 빌드 버전 값을 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.
Public 메서드Version(Int32, Int32, Int32, Int32)지정된 주 버전, 부 버전, 빌드 버전 및 수정 번호를 사용하여 Version 클래스의 새 인스턴스를 초기화합니다.
맨 위

  이름설명
Public 속성Build현재 Version 개체에 대한 버전 번호의 빌드 버전 구성 요소 값을 가져옵니다.
Public 속성Major현재 Version 개체에 대한 버전 번호의 주 버전 구성 요소 값을 가져옵니다.
Public 속성MajorRevision수정 번호의 상위 16비트를 가져옵니다.
Public 속성Minor현재 Version 개체에 대한 버전 번호의 부 버전 구성 요소 값을 가져옵니다.
Public 속성MinorRevision수정 번호의 하위 16비트를 가져옵니다.
Public 속성Revision현재 Version 개체에 대한 버전 번호의 수정 버전 구성 요소 값을 가져옵니다.
맨 위

  이름설명
Public 메서드Clone현재 Version 개체와 같은 값을 갖는 새 Version 개체를 반환합니다.
Public 메서드CompareTo(Object)현재 Version 개체를 지정된 개체와 비교하여 상대 값의 표시를 반환합니다.
Public 메서드CompareTo(Version)현재 Version 개체를 지정된 Version 개체와 비교하여 상대 값의 표시를 반환합니다.
Public 메서드Equals(Object)현재 Version 개체가 지정된 개체와 같은지 여부를 나타내는 값을 반환합니다. (Object.Equals(Object)을(를) 재정의함)
Public 메서드Equals(Version)현재 Version 개체와 지정된 Version 개체의 값이 같은지 여부를 나타내는 값을 반환합니다.
Protected 메서드Finalize가비지 수집기에서 Object를 회수하기 전에 개체가 리소스를 해제하고 다른 정리 작업을 수행할 수 있게 합니다. (Object에서 상속됨)
Public 메서드GetHashCode현재 Version 개체의 해시 코드를 반환합니다. (Object.GetHashCode()을(를) 재정의함)
Public 메서드GetType현재 인스턴스의 Type을 가져옵니다. (Object에서 상속됨)
Protected 메서드MemberwiseClone현재 Object의 단순 복사본을 만듭니다. (Object에서 상속됨)
Public 메서드정적 멤버Parse버전 번호의 문자열 표현을 해당하는 Version 개체로 변환합니다.
Public 메서드ToString()현재 Version 개체의 값을 해당하는 String 표현으로 변환합니다. (Object.ToString()을(를) 재정의함)
Public 메서드ToString(Int32)현재 Version 개체의 값을 해당하는 String 표현으로 변환합니다. 지정된 개수는 반환할 구성 요소의 수를 나타냅니다.
Public 메서드정적 멤버TryParse버전 번호의 문자열 표현을 해당하는 Version 개체로 변환하려고 시도하고, 변환에 성공했는지 여부를 나타내는 값을 반환합니다.
맨 위

  이름설명
Public 연산자정적 멤버Equality지정된 두 가지 Version 개체가 같은지 여부를 확인합니다.
Public 연산자정적 멤버GreaterThan지정된 첫 번째 Version 개체가 지정된 두 번째 Version 개체보다 큰지 여부를 확인합니다.
Public 연산자정적 멤버GreaterThanOrEqual지정된 첫 번째 Version 개체가 지정된 두 번째 Version 개체보다 크거나 같은지 여부를 확인합니다.
Public 연산자정적 멤버Inequality지정된 두 가지 Version 개체가 같지 않은지 여부를 확인합니다.
Public 연산자정적 멤버LessThan지정된 첫 번째 Version 개체가 지정된 두 번째 Version 개체보다 작은지 여부를 확인합니다.
Public 연산자정적 멤버LessThanOrEqual지정된 첫 번째 Version 개체가 두 번째 Version 개체보다 작거나 같은지 여부를 확인합니다.
맨 위

버전 번호는 주 버전, 부 버전, 빌드 버전 및 수정 번호 중 두 가지 또는 네 가지 구성 요소로 이루어집니다. 주 버전 및 부 버전 구성 요소는 필수적이고 빌드 버전 및 수정 버전 구성 요소는 선택적이지만 수정 버전 구성 요소가 정의된 경우 빌드 버전 구성 요소가 있어야 합니다. 정의된 모든 구성 요소는 0보다 크거나 같은 정수여야 합니다. 버전 번호의 형식은 다음과 같습니다. 선택적 구성 요소는 대괄호([ 및 ])로 표시됩니다.

major.minor[.build[.revision]]

구성 요소 사용 시 다음 규칙이 적용됩니다.

  • Major: 이름은 같지만 주 버전이 다른 어셈블리는 서로 호환되지 않습니다. 더 높은 버전 번호는 이전 버전과의 호환이 허용되지 않는 제품을 다시 작성하는 것을 나타낼 수 있습니다.

  • Minor: 두 어셈블리의 이름 및 주 버전 번호가 같고 부 버전 번호가 다르면, 이전 버전과 호환되도록 기능이 향상되었음을 나타냅니다. 이 부 버전 번호는 제품의 이전 릴리스나 이전 버전의 제품과 완벽하게 호환되는 새 버전을 나타낼 수 있습니다.

  • Build: 빌드 번호가 다른 것은 같은 소스를 다시 컴파일했음을 나타냅니다. 프로세서, 플랫폼 또는 컴파일러가 변경될 때 다른 빌드 번호를 사용할 수 있습니다.

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

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

어셈블리에 버전 정보 할당

일반적으로 어셈블리에 버전 번호를 할당하는 데 Version 클래스를 사용하지 않습니다. 대신 AssemblyVersionAttribute 클래스를 사용하여 어셈블리 버전을 정의합니다.

버전 정보 검색

Version 개체는 운영 체제와 같은 일부 시스템 또는 응용프로그램 구성 요소, 공용 언어 런타임, 현재 응용프로그램의 실행 파일, 특정 어셈블리 등에 대한 버전 정보를 저장하는 데 가장 자주 사용됩니다. 다음 예제에서는 몇 가지 가장 일반적인 시나리오를 보여 줍니다.

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

    
    // Get the operating system version.
    OperatingSystem os = Environment.OSVersion;
    Version ver = os.Version;
    outputBlock.Text += String.Format("Operating System: {0} ({1})", os.Platform, ver.ToString()) + "\n";
    
    
    
  • 공용 언어 런타임의 버전 검색. 다음 예제에서는 Environment.Version 속성을 사용하여 공용 언어 런타임에 대한 버전 정보를 검색합니다.

    
    // Get the common language runtime version.
    Version ver = Environment.Version;
    outputBlock.Text += String.Format("CLR Version {0}", ver.ToString()) + "\n";
    
    
    

버전 개체 비교

CompareTo 메서드를 사용하여 하나의 Version 개체가 두 번째 Version 개체보다 빠른지, 같은지, 느린지 여부를 확인할 수 있습니다. 다음 예제에서는 버전 2.1이 버전 2.0 이상임을 나타냅니다.


Version v1 = new Version(2, 0);
Version v2 = new Version("2.1");
outputBlock.Text += String.Format("Version {0} is ", v1);
switch(v1.CompareTo(v2))
{
   case 0:
      outputBlock.Text += "the same as";
      break;
   case 1:
      outputBlock.Text += "later than";
      break;
   case -1:
      outputBlock.Text += "earlier than";
      break;
}
outputBlock.Text += String.Format(" Version {0}.\n", v2);                  
// The example displays the following output:
//       Version 2.0 is earlier than Version 2.1.


두 버전이 동일하려면 첫 번째 Version 개체의 주, 부, 빌드 및 수정 번호가 두 번째 Version 개체의 해당 번호와 동일해야 합니다. Version 개체의 빌드 또는 수정 번호가 정의되지 않은 경우 해당 Version 개체는 빌드 또는 수정 번호가 0과 같은 Version 개체보다 이전인 것으로 간주됩니다. 다음 예제에서는 버전 구성 요소가 정의되지 않은 3개의 Version 개체를 비교하여 이를 보여 줍니다.


using System;

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

public class Example
{
   static System.Windows.Controls.TextBlock outputBlock;

   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      Example.outputBlock = outputBlock;

      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)
   {
      outputBlock.Text += String.Format("Relationship of {0} to {1}: {2}\n", 
                                        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


다음 코드 예제에서는 Assembly 클래스를 사용하여 어셈블리를 식별하는 Version 개체를 가져옵니다.


// This code example demonstrates the Version class.

/* 
   This code example loads an assembly and retrieves its 
   version number. 
   Typically, you would use code similar to this example 
   to load a separate assembly and obtain its version number. 
   However, solely to avoid using another assembly, this code 
   example loads itself and retrieves its own version number. 

   This code example is created in two steps:
1) The AssemblyVersionAttribute attribute is applied to this 
   code example at the assembly level. Then the code example 
   is compiled into the MyAssembly.exe executable assembly.
2) When MyAssembly.exe is executed, it loads itself, then 
   displays its own version number. 
*/

using System;
using System.Reflection;

// Apply the version number, 1.2.3.4, to this assembly.
[assembly: AssemblyVersionAttribute("1.2.3.4")]
class Example
{
   public static void Demo(System.Windows.Controls.TextBlock outputBlock)
   {
      // Use the Assembly class to load MyAssembly.exe. Note that
      // the name of the assembly does not include the ".exe" suffix
      // of the executable file.

      Assembly myAsm = Assembly.Load("MyAssembly");
      AssemblyName aName = myAsm.GetName();

      // Store the version number in a Version object.
      Version ver = aName.Version;

      // Display the version number of MyAssembly.
      outputBlock.Text += ver + "\n";
   }
}

/*
This code example produces the following results:

1.2.3.4

*/


Windows Phone OS

지원되는 버전: 8.0, 7.1, 7.0

Windows Phone

이 형식의 모든 공용 static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

표시: