Déterminez facilement la version de .NET Framework
Les développeurs doivent souvent déterminer la version spécifique du .NET Framework utilisée par un système, en particulier lorsqu'ils ciblent des fonctionnalités spécifiques ou maintiennent une version spécifique. Bien que Environment.Version()
ne soit disponible que dans la version de base, il devient nécessaire de trouver un moyen efficace de vérifier les mises à jour spécifiques telles que .NET 3.5 SP1.
Utilisez le registre
Une solution possible consiste à accéder au registre Windows. Pour les versions .NET 1 à 4, le code simple suivant peut extraire des informations pertinentes :
<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>
Gestion de .NET 4.5
Pour .NET 4.5 et versions ultérieures, Microsoft fournit des conseils de documentation détaillés. Cet exemple de code montre comment récupérer la version exacte installée :
<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>
Grâce à ces méthodes, les développeurs peuvent désormais facilement déterminer la version exacte de .NET Framework installée sur leurs systèmes, ce qui leur permet d'utiliser en toute confiance des fonctionnalités spécifiques et de résoudre les problèmes de compatibilité.
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!