다음을 통해 공유


방법: 설치된 .NET Framework 버전 확인

비고

이 문서는 .NET Framework에만 적용됩니다. 설치된 .NET Core 및 .NET 5+ SDK 및 런타임을 확인하려면 .NET이 이미 설치되어 있는지 확인하는 방법을 참조하세요.

컴퓨터에 여러 버전의 .NET Framework를 설치하고 실행할 수 있습니다.

  • 사용자 고유의 컴퓨터에서 버전을 확인하려는 경우 가장 쉬운 방법은 제어판>프로그램 프로그램>및 기능 또는 설치된 앱 아래>에서입니다. 커뮤니티에서 유지 관리하는 이러한 도구를 사용할 수도 있습니다.
  • 앱 개발자인 경우 앱 사용자의 컴퓨터에 설치된 .NET Framework 버전을 알아야 할 수 있습니다. 레지스트리에는 컴퓨터에 설치된 .NET Framework 버전 목록이 포함되어 있습니다. 속성을 쿼리할 RuntimeInformation.FrameworkDescription수도 있습니다.
  • 별도로 버전이 지정된 CLR 버전을 찾으려면 CLR 버전 찾기를 참조하세요.

.NET Framework는 별도로 버전이 지정된 두 가지 주요 구성 요소로 구성됩니다.

  • 앱에 대한 기능을 제공하는 형식 및 리소스의 컬렉션인 어셈블리 집합입니다. .NET Framework와 어셈블리는 동일한 버전 번호를 공유합니다. 예를 들어 .NET Framework 버전에는 4.5, 4.6.1 및 4.7.2가 포함됩니다.
  • 앱의 코드를 관리하고 실행하는 CLR(공용 언어 런타임)입니다. 단일 CLR 버전은 일반적으로 여러 .NET Framework 버전을 지원합니다. 예를 들어 CLR 버전 4.0.30319입니다. xxxxx 가 42000보다 작은 xxxxx 는 .NET Framework 버전 4~4.5.2를 지원합니다. 4.0.30319.42000보다 크거나 같은 CLR 버전은 .NET Framework 4.6부터 .NET Framework 버전을 지원합니다.

팁 (조언)

각 버전의 .NET Framework에 대해 설치된 업데이트를 검색하는 방법에 대한 자세한 내용은 방법: 설치된 .NET Framework 업데이트 확인을 참조하세요.

커뮤니티에서 유지 관리되는 도구

커뮤니티에서 유지 관리되는 도구를 사용하여 설치된 .NET Framework 버전을 검색할 수 있습니다.

RuntimeInformation.FrameworkDescription 속성

앱이 실행 중인 .NET 버전을 프로그래밍 방식으로 쿼리하려면 이 속성을 사용할 RuntimeInformation.FrameworkDescription 수 있습니다. 앱이 .NET Framework에서 실행되는 경우 출력은 다음과 유사합니다.

.NET Framework 4.8.4250.0

이에 비해 앱이 .NET Core 또는 .NET 5 이상에서 실행되는 경우 출력은 다음과 유사합니다.

.NET Core 3.1.9
.NET 5.0.0

Registry

레지스트리를 사용하여 설치된 .NET Framework 버전을 검색할 수 있습니다. 키는 .NET Framework 1.0-4.0 및 .NET Framework 4.5 이상에서 다릅니다. 레지스트리 편집기, PowerShell 또는 코드를 사용하여 레지스트리를 확인할 수 있습니다.

.NET Framework 4.5 이상 버전

컴퓨터에 설치된 .NET Framework(4.5 이상) 버전은 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full레지스트리에 나열됩니다. 전체 하위 키가 없으면 .NET Framework 4.5 이상이 설치되지 않습니다.

비고

레지스트리 경로의 NET Framework 설치 하위 키는 마침표로 시작하지 않습니다.

레지스트리의 릴리스 REG_DWORD 값은 설치된 .NET Framework 버전을 나타냅니다.

.NET Framework 버전 릴리스의 값
.NET Framework 4.5 모든 Windows 운영 체제: 378389
.NET Framework 4.5.1 Windows 8.1 및 Windows Server 2012 R2: 378675
다른 모든 Windows 운영 체제: 378758
.NET Framework 4.5.2 모든 Windows 운영 체제: 379893
.NET Framework 4.6 Windows 10: 393295
다른 모든 Windows 운영 체제: 393297
.NET Framework 4.6.1 Windows 10 11월 업데이트 시스템에서: 394254
다른 모든 Windows 운영 체제(Windows 10 포함): 394271
.NET Framework 4.6.2 Windows 10 1주년 업데이트 및 Windows Server 2016: 394802
다른 모든 Windows 운영 체제(다른 Windows 10 운영 체제 포함): 394806
.NET Framework 4.7 Windows 10 크리에이터 업데이트: 460798
다른 모든 Windows 운영 체제(다른 Windows 10 운영 체제 포함): 460805
.NET Framework 4.7.1 Windows 10 Fall Creators Update 및 Windows Server 버전 1709: 461308
다른 모든 Windows 운영 체제(다른 Windows 10 운영 체제 포함): 461310
.NET Framework 4.7.2 Windows 10 2018년 4월 업데이트 및 Windows Server 버전 1803: 461808
Windows 10 2018년 4월 업데이트 및 Windows Server 이외의 모든 Windows 운영 체제에서 버전 1803: 461814
.NET Framework 4.8 Windows 10 2019년 5월 업데이트 및 Windows 10 2019년 11월 업데이트: 528040
Windows 10 2020년 5월 업데이트, 2020년 10월 업데이트, 2021년 5월 업데이트, 2021년 11월 업데이트 및 2022년 업데이트: 528372
Windows 11 및 Windows Server 2022: 528449
다른 모든 Windows 운영 체제(다른 Windows 10 운영 체제 포함): 528049
.NET Framework 4.8.1 Windows 11 2025 업데이트: 533509
Windows 11 2022 업데이트 및 Windows 11 2023 업데이트: 533320
다른 모든 Windows 운영 체제: 533325

최소 버전

.NET Framework의 최소 버전이 있는지 확인하려면 다음 표에 나열된 해당 값보다 크거나 같은 릴리스 REG_DWORD 값을 확인합니다. 예를 들어 애플리케이션이 .NET Framework 4.8 이상 버전에서 실행되는 경우 528040보다 크거나 같은릴리스 REG_DWORD 값을 테스트합니다.

.NET Framework 버전 최솟값
.NET Framework 4.5 378389
.NET Framework 4.5.1 378675
.NET Framework 4.5.2 379893
.NET Framework 4.6 393295
.NET Framework 4.6.1 394254
.NET Framework 4.6.2 394802
.NET Framework 4.7 460798
.NET Framework 4.7.1 461308
.NET Framework 4.7.2 461808
.NET Framework 4.8 528040
.NET Framework 4.8.1 533320

레지스트리 편집기 사용

  1. 시작 메뉴에서 실행을 선택하고 regedit를 입력한 다음 확인을 선택합니다.

    regedit를 실행하려면 관리 자격 증명이 있어야 합니다.

  2. 레지스트리 편집기에서 다음 하위 키를 엽니다. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. 전체 하위 키가 없는 경우 .NET Framework 4.5 이상이 설치되어 있지 않습니다.

  3. Release라는 REG_DWORD 항목을 확인 합니다. 있는 경우 .NET Framework 4.5 이상이 설치되어 있습니다. 해당 값은 특정 버전의 .NET Framework에 해당합니다. 예를 들어 다음 그림에서 릴리스 항목의 값은 .NET Framework 4.8의 릴리스 키인 528040입니다.

    .NET Framework 4.5에 대한 레지스트리 항목을 보여 주는 RegEdit 도구의 스크린샷

PowerShell을 사용하여 최소 버전 확인

PowerShell 명령을 사용하여 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full 하위 키의 릴리스 항목 값을 확인합니다.

다음 예제에서는 릴리스 항목의 값을 확인하여 .NET Framework 4.6.2 이상이 설치되어 있는지 확인합니다. 이 코드는 설치되어 있으면 True을 반환하고, 그렇지 않으면 False을 반환합니다.

(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802

코드를 사용하여 레지스트리 쿼리

  1. 및 메서드를 사용하여 Windows 레지스트리의 RegistryKey.OpenBaseKey 하위 키에 액세스합니다.RegistryKey.OpenSubKey

    중요합니다

    실행 중인 앱이 32비트이고 64비트 Windows에서 실행되는 경우 레지스트리 경로는 이전에 나열된 것과 다릅니다. 32비트 레지스트리는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ 하위 키에서 사용할 수 있습니다. 예를 들어 .NET Framework 4.5에 대한 레지스트리 하위 키는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.

  2. 릴리스 REG_DWORD 값을 확인하여 설치된 버전을 확인합니다. 정방향 호환이 가능하려면 .NET Framework 버전 테이블에 나열된 값보다 크거나 같은 값을 확인합니다.

다음 예제에서는 레지스트리의 릴리스 항목 값을 확인하여 설치된 .NET Framework 4.5-4.8.1 버전을 찾습니다.

팁 (조언)

아직 지시문을 using Microsoft.Win32Imports Microsoft.Win32 추가하지 않은 경우 코드 파일의 맨 위에 추가합니다.

const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";

using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32))
using (RegistryKey ndpKey = baseKey.OpenSubKey(subkey))
{
    if (ndpKey != null && ndpKey.GetValue("Release") != null)
        Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int)ndpKey.GetValue("Release"))}");
    else
        Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
}

// Checking the version using >= enables forward compatibility.
string CheckFor45PlusVersion(int releaseKey)
{
    if (releaseKey >= 533320) return "4.8.1 or later";
    if (releaseKey >= 528040) return "4.8";
    if (releaseKey >= 461808) return "4.7.2";
    if (releaseKey >= 461308) return "4.7.1";
    if (releaseKey >= 460798) return "4.7";
    if (releaseKey >= 394802) return "4.6.2";
    if (releaseKey >= 394254) return "4.6.1";
    if (releaseKey >= 393295) return "4.6";
    if (releaseKey >= 379893) return "4.5.2";
    if (releaseKey >= 378675) return "4.5.1";
    if (releaseKey >= 378389) return "4.5";

    // This code should never execute. A non-null release key should mean
    // that 4.5 or later is installed.
    return "No 4.5 or later version detected";
}
Private Sub Get45PlusFromRegistry()
    Const subkey As String = "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"

    Using baseKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32),
          ndpKey As RegistryKey = baseKey.OpenSubKey(subkey)

        If ndpKey IsNot Nothing AndAlso ndpKey.GetValue("Release") IsNot Nothing Then
            Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion(ndpKey.GetValue("Release"))}")
        Else
            Console.WriteLine(".NET Framework Version 4.5 or later is not detected.")
        End If

    End Using

End Sub

' Checking the version using >= enables forward compatibility.
Private Function CheckFor45PlusVersion(releaseKey As Integer) As String
    Select Case releaseKey
        Case >= 533320 : Return "4.8.1 or later"
        Case >= 528040 : Return "4.8"
        Case >= 461808 : Return "4.7.2"
        Case >= 461308 : Return "4.7.1"
        Case >= 460798 : Return "4.7"
        Case >= 394802 : Return "4.6.2"
        Case >= 394254 : Return "4.6.1"
        Case >= 393295 : Return "4.6"
        Case >= 379893 : Return "4.5.2"
        Case >= 378675 : Return "4.5.1"
        Case >= 378389 : Return "4.5"
        Case Else
            Return "No 4.5 or later version detected"
    End Select
End Function

이 예제에서는 다음과 같은 출력을 표시합니다.

.NET Framework Version: 4.6.1

PowerShell을 사용하여 레지스트리 쿼리

다음 예제에서는 PowerShell을 사용하여 레지스트리의 릴리스 항목 값을 확인하여 설치된 .NET Framework 4.5-4.8.1 버전을 찾습니다.

$release = Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release
switch ($release) {
    { $_ -ge 533320 } { $version = '4.8.1 or later'; break }
    { $_ -ge 528040 } { $version = '4.8'; break }
    { $_ -ge 461808 } { $version = '4.7.2'; break }
    { $_ -ge 461308 } { $version = '4.7.1'; break }
    { $_ -ge 460798 } { $version = '4.7'; break }
    { $_ -ge 394802 } { $version = '4.6.2'; break }
    { $_ -ge 394254 } { $version = '4.6.1'; break }
    { $_ -ge 393295 } { $version = '4.6'; break }
    { $_ -ge 379893 } { $version = '4.5.2'; break }
    { $_ -ge 378675 } { $version = '4.5.1'; break }
    { $_ -ge 378389 } { $version = '4.5'; break }
    default { $version = $null; break }
}

if ($version) {
    Write-Host -Object ".NET Framework Version: $version"
} else {
    Write-Host -Object '.NET Framework Version 4.5 or later is not detected.'
}

이 예제는 버전 검사에 권장되는 방법을 따릅니다.

  • 릴리스 항목의 값이 알려진 릴리스의 값보다 크거나 같은 지 확인합니다.
  • 가장 최근 버전에서 초기 버전까지 순서대로 확인합니다.

.NET Framework 1.0-4.0

1.1에서 4.0까지의 각 .NET Framework 버전은 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP하위 키로 나열됩니다. 다음 표에서는 각 .NET Framework 버전에 대한 경로를 나열합니다. 대부분의 버전에는 이 버전이 설치되었음을 나타내는 설치 REG_DWORD 값 1 이 있습니다. 이러한 하위 키에는 버전 문자열을 포함하는 버전 REG_SZ 값도 있습니다.

비고

레지스트리 경로의 NET Framework 설치 하위 키는 마침표로 시작하지 않습니다.

프레임워크 버전 레지스트리 하위 키 가치
1.0 HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 설치하다 REG_SZ 같음 1
1.1 HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 설치하다 REG_DWORD 같음 1
2.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 설정 REG_DWORD 값이 동일합니다 1
3.0 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup InstallSuccess REG_DWORD 같음 1
3.5 HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 Install REG_DWORD = 1
4.0 클라이언트 프로필 HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client Install REG_DWORD = 1
4.0 전체 프로필 HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full Install REG_DWORD = 1

중요합니다

실행 중인 앱이 32비트이고 64비트 Windows에서 실행되는 경우 레지스트리 경로는 이전에 나열된 것과 다릅니다. 32비트 레지스트리는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ 하위 키에서 사용할 수 있습니다. 예를 들어 .NET Framework 3.5에 대한 레지스트리 하위 키는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

.NET Framework 1.0 하위 키에 대한 레지스트리 경로는 다른 하위 키와 다릅니다.

레지스트리 편집기 사용(이전 프레임워크 버전)

  1. 시작 메뉴에서 실행을 선택하고 regedit를 입력한 다음 확인을 선택합니다.

    regedit를 실행하려면 관리 자격 증명이 있어야 합니다.

  2. 확인하려는 버전과 일치하는 하위 키를 엽니다. .NET Framework 1.0-4.0 섹션의 표를 사용합니다.

    다음 그림에서는 .NET Framework 3.5에 대한 하위 키 및 해당 버전 값을 보여 있습니다.

    .NET Framework 3.5에 대한 레지스트리 항목을 보여 주는 RegEdit 도구의 스크린샷

코드를 사용하여 레지스트리 쿼리(이전 프레임워크 버전)

클래스를 Microsoft.Win32.RegistryKey 사용하여 Windows 레지스트리의 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP 하위 키에 액세스합니다.

중요합니다

실행 중인 앱이 32비트이고 64비트 Windows에서 실행되는 경우 레지스트리 경로는 이전에 나열된 것과 다릅니다. 32비트 레지스트리는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ 하위 키에서 사용할 수 있습니다. 예를 들어 .NET Framework 3.5에 대한 레지스트리 하위 키는 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.

다음 예제에서는 설치된 .NET Framework 1-4 버전을 찾습니다.

// Open the registry key for the .NET Framework entry. Dispose this object when done.
RegistryKey ndpKey =
    RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
        .OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\");

foreach (string versionKeyName in ndpKey.GetSubKeyNames())
{
    // Skip .NET Framework 4.5 version information.
    if (versionKeyName == "v4")
        continue;

    if (versionKeyName.StartsWith("v"))
    {
        RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);

        // Get the .NET Framework version value.
        string name = versionKey.GetValue("Version", "").ToString();

        // Get the service pack (SP) number.
        string sp = versionKey.GetValue("SP", "").ToString();

        // Get the installation flag.
        string install = versionKey.GetValue("Install", "").ToString();

        if (string.IsNullOrEmpty(install))
        {
            // No install info; it must be in a child subkey.
            Console.WriteLine($"{versionKeyName}  {name}");
        }
        else if (install == "1")
        {
            // Install = 1 means the version is installed.
            if (!string.IsNullOrEmpty(sp))
                Console.WriteLine($"{versionKeyName}  {name}  SP{sp}");
            else
                Console.WriteLine($"{versionKeyName}  {name}");
        }

        if (!string.IsNullOrEmpty(name))
        {
            versionKey.Dispose();
            continue;
        }

        // Iterate through the subkeys of the version subkey.
        foreach (string subKeyName in versionKey.GetSubKeyNames())
        {
            RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
            name = subKey.GetValue("Version", "").ToString();

            if (!string.IsNullOrEmpty(name))
                sp = subKey.GetValue("SP", "").ToString();

            install = subKey.GetValue("Install", "").ToString();

            if (string.IsNullOrEmpty(install))
            {
                // No install info; it must be later.
                Console.WriteLine($"  {versionKeyName}  {name}");
            }
            else if (install == "1")
            {
                if (!string.IsNullOrEmpty(sp))
                    Console.WriteLine($"  {subKeyName}  {name}  SP{sp}");
                else
                    Console.WriteLine($"  {subKeyName}  {name}");
            }

            // Clean up the subkey object.
            subKey.Dispose();
        }

        versionKey.Dispose();
    }
}

ndpKey.Dispose();
' Open the registry key for the .NET Framework entry. Dispose this object when done.
Dim ndpKey As RegistryKey =
    RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32) _
        .OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\")

For Each versionKeyName In ndpKey.GetSubKeyNames()
    ' Skip .NET Framework 4.5 and later.
    If versionKeyName = "v4" Then Continue For

    If versionKeyName.StartsWith("v") Then

        Dim versionKey As RegistryKey = ndpKey.OpenSubKey(versionKeyName)

        ' Get the .NET Framework version value.
        Dim name = versionKey.GetValue("Version", "").ToString()

        ' Get the service pack (SP) number.
        Dim sp = versionKey.GetValue("SP", "").ToString()

        Dim install = versionKey.GetValue("Install", "").ToString()

        If String.IsNullOrEmpty(install) Then

            ' No install info; it must be in a child subkey.
            Console.WriteLine($"{versionKeyName}  {name}")

        ElseIf install = "1" Then

            ' Install = 1 means the version is installed.
            If Not String.IsNullOrEmpty(sp) Then
                Console.WriteLine($"{versionKeyName}  {name}  SP{sp}")
            Else
                Console.WriteLine($"{versionKeyName}  {name}")
            End If

        End If

        If Not String.IsNullOrEmpty(name) Then

            versionKey.Dispose()
            Continue For

        End If

        ' Iterate through the subkeys of the version subkey.
        For Each subKeyName In versionKey.GetSubKeyNames()

            Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName)
            name = subKey.GetValue("Version", "").ToString()

            If Not String.IsNullOrEmpty(name) Then
                sp = subKey.GetValue("SP", "").ToString()
            End If

            install = subKey.GetValue("Install", "").ToString()

            If String.IsNullOrEmpty(install) Then

                ' No install info; it must be later.
                Console.WriteLine($"  {versionKeyName}  {name}")

            ElseIf install = "1" Then

                If Not String.IsNullOrEmpty(sp) Then
                    Console.WriteLine($"  {subKeyName}  {name}  SP{sp}")
                Else
                    Console.WriteLine($"  {subKeyName}  {name}")
                End If

            End If

            ' Clean up the subkey object.
            subKey.Dispose()

        Next

        versionKey.Dispose()

    End If
Next

ndpKey.Dispose()

이 예제에서는 다음과 유사한 출력을 표시합니다.

v2.0.50727  2.0.50727.4927  SP2
v3.0  3.0.30729.4926  SP2
v3.5  3.5.30729.4926  SP1
v4.0
  Client  4.0.0.0

PowerShell(이전 프레임워크 버전)을 사용하여 레지스트리 쿼리

다음 예제에서는 PowerShell을 사용하여 레지스트리의 릴리스 항목 값을 확인하여 설치된 .NET Framework 1-4 버전을 찾습니다.

Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' |
Where-Object { ($_.PSChildName -ne "v4") -and ($_.PSChildName -like 'v*') } |
ForEach-Object {
    $name = $_.Version
    $sp = $_.SP
    $install = $_.Install
    if (-not $install) {
        Write-Host -Object "$($_.PSChildName)  $($name)"
    }
    elseif ($install -eq '1') {
        if (-not $sp) {
            Write-Host -Object "$($_.PSChildName)  $($name)"
        }
        else {
            Write-Host -Object "$($_.PSChildName)  $($name) SP$($sp)"
        }
}
    if (-not $name) {
        $parentName = $_.PSChildName
        Get-ChildItem -LiteralPath $_.PSPath |
        Where-Object {
            if ($_.Property -contains 'Version') { $name = $((Get-ItemProperty -Path "Registry::$_").Version) }
            if ($name -and ($_.Property -contains 'SP')) { $sp = $((Get-ItemProperty -Path "Registry::$_").SP) }
            if ($_.Property -contains 'Install') { $install = $((Get-ItemProperty -Path "Registry::$_").Install) }
            if (-not $install) {
                Write-Host -Object "  $($parentName)  $($name)"
            }
            elseif ($install -eq '1') {
                if (-not $sp) {
                    Write-Host -Object "  $($_.PSChildName)  $($name)"
                }
                else {
                    Write-Host -Object "  $($_.PSChildName)  $($name) SP$($sp)"
                }
            }
        }
    }
}

CLR 버전 찾기

.NET Framework와 함께 설치된 .NET Framework CLR은 별도로 버전이 지정됩니다. .NET Framework CLR의 버전을 검색하는 방법에는 두 가지가 있습니다.

Clrver.exe 도구

CLR 버전 도구(Clrver.exe)를 사용하여 컴퓨터에 설치된 CLR 버전을 확인합니다. Visual Studio 개발자 명령 프롬프트 또는 Visual Studio 개발자 PowerShell을 열고 입력clrver합니다.

샘플 출력:

Versions installed on the machine:
v2.0.50727
v4.0.30319

Environment.Version 속성

중요합니다

.NET Framework 4.5 이상 버전의 경우 이 속성을 사용하여 Environment.Version CLR 버전을 검색하지 마세요. 대신 .NET Framework 4.5 이상 버전에 설명된 대로 레지스트리를 쿼리합니다.

  1. Environment.Version 속성을 쿼리하여 Version 개체를 검색합니다.

    반환된 System.Version 개체는 현재 코드를 실행 중인 런타임의 버전을 식별합니다. 어셈블리 버전 또는 컴퓨터에 설치되었을 수 있는 런타임의 다른 버전을 반환하지 않습니다.

    .NET Framework 버전 4, 4.5, 4.5.1 및 4.5.2의 경우 반환된 Version 개체의 문자열 표현에는 4.0.30319 형식이 있습니다.xxxxx, 여기서 xxxxx 는 42000 미만입니다. .NET Framework 4.6 이상 버전의 경우 4.0.30319.42000 형식입니다.

  2. Version 개체가 있으면 다음과 같이 쿼리합니다.

    • 주 릴리스 식별자(예: 버전 4.0의 경우 4)에 대해 Version.Major 속성을 사용합니다.
    • 소프트웨어의 마이너 릴리스 식별자(예: 버전 4.0에서 0)에 대해, Version.Minor 속성을 사용하세요.
    • 전체 버전 문자열(예: 4.0.30319.18010)의 경우 메서드를 Version.ToString 사용합니다. 이 메서드는 코드를 실행하는 런타임의 버전을 반영하는 단일 값을 반환합니다. 컴퓨터에 설치될 수 있는 어셈블리 버전 또는 기타 런타임 버전은 반환되지 않습니다.

다음 예제에서는 이 속성을 사용하여 Environment.Version CLR 버전 정보를 검색합니다.

Console.WriteLine($"Version: {Environment.Version}");
Console.WriteLine($"Version: {Environment.Version}")

이 예제에서는 다음과 유사한 출력을 표시합니다.

Version: 4.0.30319.18010

참고하십시오