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>
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>
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!