반응형

*C# 레지스트리를 이용한 설치된 닷넷프레임워크 버전 리스트 조회 예제...

 

Main

 

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Microsoft.Win32;

namespace CSharp_InstallFrameworkList
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {

            listView1.Items.Clear();

            using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
            {
                int iCount=0;
                string strNET="";

                //하위 레지스트리 검색
                foreach(string strRegName in rk.GetSubKeyNames())
                {
                    ListViewItem lvi = new ListViewItem();

                    //문자열이 v로 시작 하면...
                    if(strRegName .StartsWith("v"))
                    {
                        //하위 레지스트리 열기...
                        using (RegistryKey versionKey = rk.OpenSubKey(strRegName))
                        {
                            // Get the .NET Framework version value.
                            string strVersion = (string)versionKey.GetValue("Version", "");

                            //strVersion 이 null 이거나 빈값이면...
                            if (string.IsNullOrEmpty(strVersion))
                            {
                                //하위 레지스트리 검색...
                                foreach (string strSubKey in versionKey.GetSubKeyNames())
                                {
                                    //하위 레지스트리 열기...
                                    using (RegistryKey rkSub = versionKey.OpenSubKey(strSubKey))
                                    {
                                        //하위 레지스트리에 Version 값 얻어오기...
                                        string strVer = (string)rkSub.GetValue("Version", "");
                                        strNET = strVer;
                                    }
                                }
                            }
                            else
                            {
                                strNET = strVersion;
                            }
                        }

                        //Listview Display
                        lvi.Text = (iCount +1) .ToString();
                        lvi.SubItems.Add(strNET);
                        listView1.Items.Add(lvi);
                       iCount +=1;

                    }//if

                }//foreach
            }//using

        }//button1_Click

    }
}

 

 

설치된 닷넷 프레임워크 버전들 위치는 아래와 같습니다.

 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

레지스트리 에디터 열기

윈도우 시작 -> 실행 -> regiedit 입력

 

아래의 그림은 레지스트리 에디터를 열고 위치를 직접 찾아가 본 모습입니다. 

NDP 안에 여러개의 v 로 시작 되면서 닷넷프레임워크 버전들이 존재 하고 있는 모습을 볼 수 있습니다.

 

 

*예제 결과

 

 

* 참조 문서 : https://docs.microsoft.com/ko-kr/dotnet/framework/migration-guide/how-to-determine-which-versions-are-installed

 

설치된 .NET Framework 버전 확인

코드, regedit.exe 또는 PowerShell을 사용하여 Windows 레지스트리를 쿼리하는 방법으로 컴퓨터에 설치된 .NET Framework 버전을 검색합니다.

docs.microsoft.com

 

https://kdsoft-zeros.tistory.com/173

 

[VBNET] 설치된 닷넷프레임워크 버전 리스트 조회

* VBNET 설치된 닷넷프레임워크(NET Framework) 리스트 조회 예제... 전체 소스 코드 Form1.vb Imports Microsoft.Win32 Public Class Form1 Private Sub button1_Click(ByVal sender As System.Object, ByVal e..

kdsoft-zeros.tistory.com

 

반응형

+ Recent posts