Maison >développement back-end >C++ >Comment puis-je déterminer avec précision la version du .NET Framework installée ?
Un moyen plus simple de déterminer la version du .NET Framework
La méthodeEnvironment.Version()
n'est souvent pas assez précise pour déterminer avec précision la version du .NET Framework, notamment lors de la détection de la version 3.5 SP 1. Cet article explore une méthode alternative pour exploiter les valeurs de registre pour fournir une solution plus fiable.
Obtenir des informations sur la version
Pour les versions 1 à 4 de .NET, la récupération des informations sur le framework et le service pack à partir du registre implique les étapes suivantes :
Exemple de code des versions .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>
Version .NET 4.5 prise en charge
Pour .NET 4.5 et supérieur, la documentation officielle de Microsoft propose une approche différente :
Exemple de code de la version .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>
Ces méthodes devraient déterminer plus précisément la version installée de .NET Framework, y compris la prise en charge de 3.5 SP 1 et versions ultérieures.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!