>백엔드 개발 >C++ >설치된 .NET Framework 버전을 정확하게 확인하려면 어떻게 해야 합니까?

설치된 .NET Framework 버전을 정확하게 확인하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-15 10:31:461034검색

How Can I Accurately Determine the Installed .NET Framework Version?

.NET Framework 버전을 확인하는 더 쉬운 방법

Environment.Version() 메서드는 특히 3.5 SP 1 버전을 검색할 때 .NET Framework 버전을 정확하게 확인할 만큼 정확하지 않은 경우가 많습니다. 이 기사에서는 보다 안정적인 솔루션을 제공하기 위해 레지스트리 값을 활용하는 대체 방법을 살펴봅니다.

버전 정보 확인

.NET 버전 1-4의 경우 레지스트리에서 프레임워크 및 서비스 팩 정보를 검색하는 단계는 다음과 같습니다.

  1. "SOFTWAREMicrosoftNET Framework SetupNDP" 레지스트리 키를 엽니다.
  2. 설치된 버전을 나타내는 하위 키 이름을 반복합니다.
  3. 하위 키 이름 시작 부분의 'v'를 제거하여 프레임워크 버전을 추출합니다.
  4. 가장 높은 버전에 해당하는 하위 키를 열고 "SP" 값을 검색하여 서비스 팩 수준을 확인합니다.

.NET 1-4 버전 샘플 코드:

<code class="language-csharp">using Microsoft.Win32;
using System.Globalization;

RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP");
string[] version_names = installed_versions.GetSubKeyNames();
double Framework = Convert.ToDouble(version_names[version_names.Length - 1].Remove(0, 1), CultureInfo.InvariantCulture);
int SP = Convert.ToInt32(installed_versions.OpenSubKey(version_names[version_names.Length - 1]).GetValue("SP", 0));</code>

.NET 4.5 버전 지원

.NET 4.5 이상의 경우 공식 Microsoft 설명서는 다른 접근 방식을 제공합니다.

  1. "SOFTWAREMicrosoftNET Framework SetupNDPv4Full" 레지스트리 키에서 "Release" 값을 확인합니다.
  2. 이 값을 사용하여 사전 정의된 범위에 따라 해당 버전을 결정합니다.

.NET 4.5 버전 샘플 코드:

<code class="language-csharp">using System;
using Microsoft.Win32;


private static void Get45or451FromRegistry()
{
    using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\")) {
        int releaseKey = Convert.ToInt32(ndpKey.GetValue("Release"));
        if (true) {
            Console.WriteLine("Version: " + CheckFor45DotVersion(releaseKey));
        }
    }
}


...


private static string CheckFor45DotVersion(int releaseKey)
{
    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 >= 393273) {
        return "4.6 RC 或更高版本";
    }
    if ((releaseKey >= 379893)) {
        return "4.5.2 或更高版本";
    }
    if ((releaseKey >= 378675)) {
        return "4.5.1 或更高版本";
    }
    if ((releaseKey >= 378389)) {
        return "4.5 或更高版本";
    }
    return "未检测到 4.5 或更高版本";
}</code>

이러한 방법을 사용하면 3.5 SP 1 이상에 대한 지원을 포함하여 설치된 .NET Framework 버전을 더 정확하게 확인할 수 있습니다.

위 내용은 설치된 .NET Framework 버전을 정확하게 확인하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.