Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menentukan Versi Rangka Kerja .NET yang Dipasang dengan Tepat?

Bagaimanakah Saya Boleh Menentukan Versi Rangka Kerja .NET yang Dipasang dengan Tepat?

Susan Sarandon
Lepaskan: 2025-01-15 10:31:46
asal
1052 orang telah melayarinya

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

Cara yang lebih mudah untuk menentukan versi .NET Framework

Kaedah

Environment.Version() selalunya tidak cukup tepat untuk menentukan versi Rangka Kerja .NET dengan tepat, terutamanya apabila mengesan versi 3.5 SP 1. Artikel ini meneroka kaedah alternatif untuk memanfaatkan nilai pendaftaran untuk menyediakan penyelesaian yang lebih dipercayai.

Dapatkan maklumat versi

Untuk .NET versi 1-4, mendapatkan semula rangka kerja dan maklumat pek perkhidmatan daripada pendaftaran melibatkan langkah berikut:

  1. Buka kekunci pendaftaran "SOFTWAREMicrosoftNET Framework SetupNDP".
  2. Gelung nama subkunci, yang mewakili versi yang dipasang.
  3. Ekstrak versi rangka kerja dengan mengalih keluar 'v' pada permulaan nama subkunci.
  4. Buka subkunci yang sepadan dengan versi tertinggi dan dapatkan nilai "SP" untuk menentukan tahap pek perkhidmatan.

.NET 1-4 kod contoh versi:

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));
Salin selepas log masuk

Versi .NET 4.5 disokong

Untuk .NET 4.5 dan ke atas, dokumentasi Microsoft rasmi menyediakan pendekatan yang berbeza:

  1. Selesaikan nilai "Release" dalam kunci pendaftaran "SOFTWAREMicrosoftNET Framework SetupNDPv4Full".
  2. Gunakan nilai ini untuk menentukan versi yang sepadan berdasarkan skop yang telah ditetapkan.

Kod contoh versi .NET 4.5:

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 或更高版本";
}
Salin selepas log masuk

Kaedah ini harus menentukan versi .NET Framework yang dipasang dengan lebih tepat, termasuk sokongan untuk 3.5 SP 1 dan lebih baru.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan Versi Rangka Kerja .NET yang Dipasang dengan Tepat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan