■ $PSVersionTable 환경 변수를 사용해 파워셸 버전을 구하는 방법을 보여준다. ▶ 실행 명령
|
$PSVersionTable [결과] Name Value ---- ----- PSVersion 5.1.19041.610 PSEdition Desktop PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...} BuildVersion 10.0.19041.610 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 |
■ $PSVersionTable 환경 변수의 PSVersion 속성을 사용해 파워셸 버전을 구하는 방법을 보여준다. ▶ 실행 명령
|
$PSVersionTable.PSVersion [결과] Major Minor Build Revision ----- ----- ----- -------- 5 1 19041 610 |
■ NewtonSoft JSON DLL 버전 충돌을 해결하는 방법을 보여준다. ▶ 에러 메시지
|
7>------ 모두 다시 빌드 시작: 프로젝트: TEST.NETWORK.RELAY.BROKER.SERVICE, 구성: Debug Any CPU ------ 7> "Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"과(와) "Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" 사이의 충돌을 해결할 수 없습니다. 임의로 "Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"을(를) 선택합니다. 7> 충돌을 해결하고 경고 메시지가 표시되지 않게 하려면 app.config에서 "Newtonsoft.Json, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed" 어셈블리의 버전을 "6.0.0.0" [C:\Program Files\Microsoft SDKs\Azure\.NET SDK\v2.9\bin\plugins\Diagnostics\Newtonsoft.Json.dll]에서 "10.0.0.0" [D:\ARCA\DSCORE.BINARY.DEBUG\Newtonsoft.Json.dll](으)로 다시 매핑하십시오. 7>C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2052,5): warning MSB3276: 같은 종속 어셈블리의 서로 다른 버전이 충돌합니다. 프로젝트 파일에서 "AutoGenerateBindingRedirects" 속성을 true로 설정하세요. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkId=294190을 참조하세요. 7> TEST.NETWORK.RELAY.BROKER.SERVICE -> D:\ARCA\TEST.BINARY.NETWORK.DEBUG\TEST.NETWORK.RELAY.BROKER.SERVICE.exe |
상기와 같은 오류가 발생한 경우 해당 프로젝트 파일에 아래
더 읽기
■ version 변수를 사용해 파이썬 버전을 조회하는 방법을 보여준다. ▶ 예제 코드 (PY)
|
import sys print(sys.version) """ 3.10.5 (tags/v3.10.5:f377153, Jun 6 2022, 16:14:13) [MSC v.1929 64 bit (AMD64)] """ |
■ 엣지 브라우저의 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
using System; using System.IO; using System.Xml; #region 엣지 버전 구하기 - GetEdgeVersion() /// <summary> /// 엣지 버전 구하기 /// </summary> /// <returns>엣지 버전</returns> public Version GetEdgeVersion() { string edgeVersion = "0.0.0"; string edgeManifest = "%SystemRoot%\\SystemApps\\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\\AppxManifest.xml"; string filePath = Environment.ExpandEnvironmentVariables(edgeManifest); if(File.Exists(filePath)) { using(XmlReader xmlReader = XmlReader.Create(filePath)) { xmlReader.ReadToFollowing("Identity"); xmlReader.MoveToAttribute("Version"); edgeVersion = xmlReader.Value; } } return new Version(edgeVersion); } #endregion |
■ 운영 체제 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
using System; using System.Management; #region 운영 체제 버전 구하기 - GetOSVersion() /// <summary> /// 운영 체제 버전 구하기 /// </summary> /// <returns>운영 체제 버전</returns> public Version GetOSVersion() { string osVersion = "0.0.0"; ManagementClass managementClass = new ManagementClass("Win32_OperatingSystem"); foreach(ManagementObject managementObject in managementClass.GetInstances()) { osVersion = managementObject.GetPropertyValue("Version") as string; } return new Version(osVersion); } #endregion |
■ 윈도우즈 10 버전을 확인하는 방법을 보여준다. 1. 명령 프롬프트를 실행한다. 2. 명령 프롬프트에서 아래 명령을 실행한다. ▶ 실행 명령
■ 닷넷 어셈블리 2.0 버전을 닷넷 4.5 프로젝트에서 사용하는 방법을 보여준다. 1. c:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\devenv.exe.config 파일에 노란색 마크 부분의
더 읽기
■ 엑셀 2007 이후 버전 여부를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
using System.Globalization; using Excel = Microsoft.Office.Interop.Excel; #region 엑셀 2007 포함 이후 버전 여부 구하기 - IsExcel2007LaterVersion(excelApplication) /// <summary> /// 엑셀 2007 이후 버전 여부 구하기 /// </summary> /// <param name="excelApplication">엑셀 애플리케이션</param> /// <returns>엑셀 2007 이후 버전 여부</returns> public bool IsExcel2007LaterVersion(Excel.Application excelApplication) { string versionName = excelApplication.Version; int dotIndex = versionName.IndexOf('.'); versionName = versionName.Substring(0, dotIndex); int versionNumber = int.Parse(versionName, CultureInfo.GetCultureInfo("en-US")); if(versionNumber >= 12) { return true; } else { return false; } } #endregion |
※ Microsoft.Office.Interop.Excel.dll 파일을 참조한다.
■ AssemblyFileVersionAttribute 클래스의 Version 속성을 사용해 Win32 파일 버전 리소스명을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
|
using System.Reflection; Assembly assembly = Assembly.GetExecutingAssembly(); AssemblyFileVersionAttribute assemblyFileVersionAttribute = (AssemblyFileVersionAttribute)assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), false)[0]; string version = assemblyFileVersionAttribute.Version; |
■ 운영 체제 버전 정보를 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
|
using System; using System.Runtime.InteropServices; /// <summary> /// 운영 체제 버전 정보 /// </summary> [StructLayout(LayoutKind.Sequential)] public struct OSVersionInformation { /// <summary> /// 크기 /// </summary> public int Size; /// <summary> /// 메이저 버전 /// </summary> public int MajorVersion; /// <summary> /// 마이너 버전 /// </summary> public int MinorVersion; /// <summary> /// 빌드 번호 /// </summary> public int BuildNumber; /// <summary> /// 플랫폼 ID /// </summary> public int PlatformID; /// <summary> /// CSD 버전 /// </summary> [MarshalAs(UnmanagedType.ByValTStr, SizeConst=128)] public string CSDVersion; } #region 버전 구하기 - GetVersionEx(osVersionInformation) /// <summary> /// 버전 구하기 /// </summary> /// <param name="osVersionInformation">OS 버전 정보</param> /// <returns>처리 결과</returns> [DllImport("kernel32.dll")] public static extern short GetVersionEx(ref OSVersionInformation osVersionInformation); #endregion #region 운영 체제 버전 정보 구하기 - GetOSVersionInformation() /// <summary> /// 운영 체제 버전 정보 구하기 /// </summary> /// <returns>운영 체제 버전 정보</returns> public OSVersionInformation GetOSVersionInformation() { OSVersionInformation osVersionInformation = new OSVersionInformation(); osVersionInformation.Size = Marshal.SizeOf(typeof(OSVersionInformation)); GetVersionEx(ref osVersionInformation); return osVersionInformation; } #endregion |
■ 어셈블리 파일 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
using System.Reflection; #region 어셈블리 파일 버전 구하기 - GetAssemblyFileVersion(assembly) /// <summary> /// 어셈블리 파일 버전 구하기 /// </summary> /// <param name="assembly">어셈블리</param> /// <returns>어셈블리 파일 버전</returns> public string GetAssemblyFileVersion(Assembly assembly) { object[] customAttributeArray = assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false); if(customAttributeArray == null || customAttributeArray.Length == 0) { return null; } AssemblyFileVersionAttribute assemblyFileVersionAttribute = customAttributeArray[0] as AssemblyFileVersionAttribute; return assemblyFileVersionAttribute.Version; } #endregion |
■ SQLite 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
using System; using System.Data.SQLite; string connectionString = "Data Source=:memory:"; SQLiteConnection sqliteConnection = null; SQLiteCommand sqliteCommand = null; try { sqliteConnection = new SQLiteConnection(connectionString); sqliteConnection.Open(); string sql = "SELECT SQLITE_VERSION()"; sqliteCommand = new SQLiteCommand(sql, sqliteConnection); string version = sqliteCommand.ExecuteScalar().ToString(); Console.WriteLine("SQLite version : {0}", version); } catch(SQLiteException sqliteException) { Console.WriteLine("Error: {0}", sqliteException.ToString()); } finally { if(sqliteCommand != null) { sqliteCommand.Dispose(); } if(sqliteConnection != null) { try { sqliteConnection.Close(); } catch(SQLiteException sqliteException) { Console.WriteLine("Closing connection failed."); Console.WriteLine("Error: {0}", sqliteException.ToString()); } finally { sqliteConnection.Dispose(); } } } |
■ 어셈블리 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
using System.Reflection; #region 어셈블리 버전 구하기 - GetAssemblyVersion(filePath) /// <summary> /// 어셈블리 버전 구하기 /// </summary> /// <param name="filePath">파일 경로</param> /// <returns>어셈블리 버전</returns> public string GetAssemblyVersion(string filePath) { Assembly assembly = Assembly.LoadFrom(filePath); AssemblyName assemblyName = assembly.GetName(); return assemblyName.Version.ToString(); } #endregion |
■ Assembly 클래스를 사용해 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
using System.Reflection; #region 버전 구하기 - GetVersion(includeRevisionVersion) /// <summary> /// 버전 구하기 /// </summary> /// <param name="includeRevisionVersion">수정 버전 포함 여부</param> /// <returns>버전</returns> public string GetVersion(bool includeRevisionVersion) { string[] partStringArray = Assembly.GetExecutingAssembly().FullName.Split(','); partStringArray = partStringArray[1].Split('='); string version = partStringArray[1].Trim(); if(!includeRevisionVersion) { version = version.Substring(0, version.LastIndexOf('.')); } return version; } #endregion |
※ 일반적인 .NET 응용 프로그램의 경우 아래와 같은 코드를
더 읽기
■ WPF 버전 번호가 저장된 레지스트리 키를 보여준다. ▶ 레지스트리 키
|
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Presentation Foundation |
■ Environment 클래스의 OSVersion 정적 속성을 사용해 Windows 운영 체제 버전을 구하는 방법을 보여준다. ▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
using System; /// <summary> /// 운영 체제 타입 /// </summary> public enum OperatingSystemType { Unknown , Windows95 , Windows98 , WindowsMe , WindowsNT40 , WindowsNT2000 , WindowsXP , WindowsServer2003, WindowsVista , Windows7 } #region 운영 체제 타입 구하기 - GetOperatingSystemType() /// <summary> /// 운영 체제 타입 구하기 /// </summary> /// <returns>운영 체제 타입</returns> public OperatingSystemType GetOperatingSystemType() { OperatingSystem operatingSystem = Environment.OSVersion; OperatingSystemType operatingSystemType = OperatingSystemType.Unknown; switch(operatingSystem.Platform) { case PlatformID.Win32Windows : if(operatingSystem.Version.Major == 4) { switch(operatingSystem.Version.Minor) { case 0 : operatingSystemType = OperatingSystemType.Windows95; break; case 10 : operatingSystemType = OperatingSystemType.Windows98; break; case 90 : operatingSystemType = OperatingSystemType.WindowsMe; break; } } break; case PlatformID.Win32NT : if(operatingSystem.Version.Major == 4) { operatingSystemType = OperatingSystemType.WindowsNT40; } else if(operatingSystem.Version.Major == 5) { switch(operatingSystem.Version.Minor) { case 0 : operatingSystemType = OperatingSystemType.WindowsNT2000; break; case 1 : operatingSystemType = OperatingSystemType.WindowsXP; break; case 2 : operatingSystemType = OperatingSystemType.WindowsServer2003; break; } } else if(operatingSystem.Version.Major == 6) { switch(operatingSystem.Version.Minor) { case 0 : operatingSystemType = OperatingSystemType.WindowsVista; break; case 1 : operatingSystemType = OperatingSystemType.Windows7; break; } } break; } return operatingSystemType; } #endregion |