Rumah > pembangunan bahagian belakang > C++ > Bagaimana Saya Semak Versi Rangka Kerja .NET yang Dipasang dengan Cekap pada Sistem Saya?

Bagaimana Saya Semak Versi Rangka Kerja .NET yang Dipasang dengan Cekap pada Sistem Saya?

Linda Hamilton
Lepaskan: 2025-01-15 11:38:48
asal
203 orang telah melayarinya

How Do I Efficiently Check the Installed .NET Framework Version on My System?

Tentukan versi .NET Framework dengan mudah

Pembangun selalunya perlu menentukan versi khusus Rangka Kerja .NET yang digunakan oleh sistem, terutamanya apabila menyasarkan ciri tertentu atau mengekalkan versi tertentu. Walaupun Environment.Version() hanya tersedia dalam versi asas, mencari cara yang cekap untuk menyemak kemas kini khusus seperti .NET 3.5 SP1 menjadi perlu.

Gunakan pendaftaran

Satu penyelesaian yang mungkin adalah untuk mengakses Windows Registry. Untuk versi .NET 1-4, kod ringkas berikut boleh mengekstrak maklumat yang berkaitan:

<code class="language-csharp">RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP");
string[] version_names = installed_versions.GetSubKeyNames();
//版本名称以 'v' 开头,例如 'v3.5',在转换之前需要将其去除
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>
Salin selepas log masuk

Mengendalikan .NET 4.5

Untuk .NET 4.5 dan lebih tinggi, Microsoft menyediakan panduan dokumentasi yang menyeluruh. Contoh kod ini menunjukkan cara untuk mendapatkan semula versi tepat yang dipasang:

<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("版本: " + 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 或更高版本";
    }
    // 此行永远不会执行。非空 release 密钥应表示
    // 已安装 4.5 或更高版本。
    return "未检测到 4.5 或更高版本";
}</code>
Salin selepas log masuk

Dengan menggunakan kaedah ini, pembangun kini boleh menentukan versi tepat .NET Framework yang dipasang pada sistem mereka dengan mudah, membolehkan mereka menggunakan ciri khusus dan menyelesaikan isu keserasian dengan yakin.

Atas ialah kandungan terperinci Bagaimana Saya Semak Versi Rangka Kerja .NET yang Dipasang dengan Cekap pada Sistem Saya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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