System.Version은 버전 정보를 표현하는 클래스 입니다.
버젼은 다음과 같이 표현됩니다.
{major}.{minor}.{build}.{revision}
기본적으로 {major}.{minor}
는 표현 되어야 합니다. 빌드 번호
또는 리비젼
은 생략 가능합니다.
또한 리비젼
은 MajorRevision
및 MinorRevision
으로 나눠서 관리할 수 있는데 리비젼을 유지한 채 핫픽스 등으로 버젼을 올려야 할 경우 사용합니다.
MajorRevision
은 리비전
의 상위 16비트를 사용하고 MinorRevision
은 하위 16비트를 사용합니다. 그런데 일반적으로 이렇게까지 쓸 일은 없을 것 같습니다.
Version은 비교할 수 있습니다.
// 버젼 구조 확인
var v1 = Version.Parse("1.2");
var v2 = Version.Parse("1.2.2022");
var v3 = Version.Parse("1.2.2022.2");
Console.WriteLine($"Version: {v3}");
Console.WriteLine($"Major : {v3.Major}");
Console.WriteLine($"Minor : {v3.Minor}");
Console.WriteLine($"Build : {v3.Build}");
Console.WriteLine($"Revision : {v3.Revision}");
Console.WriteLine($"MajorRevision : {v3.MajorRevision}");
Console.WriteLine($"MinorRevision : {v3.MinorRevision}");
Console.WriteLine();
Console.WriteLine($"v1 = {v1}");
Console.WriteLine($"v2 = {v2}");
Console.WriteLine($"v3 = {v3}");
Console.WriteLine($"v1 >= v2 = {v1 >= v2}");
Console.WriteLine($"v1 >= v3 = {v1 >= v3}");
Console.WriteLine($"v2 >= v1 = {v2 >= v1}");
Console.WriteLine($"v2 >= v3 = {v2 >= v3}");
Console.WriteLine($"v3 >= v1 = {v3 >= v1}");
Console.WriteLine($"v3 >= v2 = {v3 >= v2}");
Console.WriteLine();
var v4 = Version.Parse("1.2");
var v5 = Version.Parse("1.2.0");
Console.WriteLine($"v4 = {v4}");
Console.WriteLine($"v5 = {v5}");
Console.WriteLine($"v4 >= v5 = {v4 >= v5}");
Console.WriteLine($"v5 >= v4 = {v5 >= v4}");
| 결과
Version: 1.2.2022.2
Major : 1
Minor : 2
Build : 2022
Revision : 2
MajorRevision : 0
MinorRevision : 2
v1 = 1.2
v2 = 1.2.2022
v3 = 1.2.2022.2
v1 >= v2 = False
v1 >= v3 = False
v2 >= v1 = True
v2 >= v3 = False
v3 >= v1 = True
v3 >= v2 = True
v4 = 1.2
v5 = 1.2.0
v4 >= v5 = False
v5 >= v4 = True
참고로 버젼 "1.0.0"은 버젼 “1.0” 보다 상위 버젼으로 평가됩니다.