Heim >Backend-Entwicklung >C++ >Wie kann ich die installierte .NET Framework-Version und das installierte Service Pack effektiv ermitteln?
Ermitteln Sie effektiv die .NET Framework-Version
Die Überprüfung von .NET Framework-Versionen, insbesondere 3.5 SP 1, ist eine häufige Anforderung für Entwickler. Wenn Sie jedoch nur Environment.Version()
verwenden, um diese Informationen abzurufen, erhalten Sie nur die Basisversion und lassen wichtige Details wie Service Packs weg.
Dazu gibt es mehrere Methoden:
Für .NET 1-4
Eine einfache und effektive Methode besteht darin, Daten direkt aus der Registrierung abzurufen. Für die .NET-Versionen 1 bis 4 können Sie den folgenden Codeausschnitt verwenden:
<code class="language-csharp">RegistryKey installed_versions = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP"); string[] version_names = installed_versions.GetSubKeyNames(); // version names 以 '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>
In diesem Code stellt die Variable „Framework“ die höchste installierte Version dar und „SP“ enthält die zugehörige Service Pack-Nummer.
Für .NET 4.5
Für Versionen 4.5 und höher empfiehlt die offizielle Microsoft-Dokumentation die folgende Methode:
<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 或更高版本"; } // 此行不应该执行。非空 release 密钥应该意味着 // 已安装 4.5 或更高版本。 return "未检测到 4.5 或更高版本"; }</code>
Dieser Code verwendet die Registrierung, um die installierte .NET Framework-Version und das entsprechende Service Pack zu ermitteln.
Mithilfe dieser Technologien können Entwickler schnell und genau die installierte .NET Framework-Version ermitteln und so fundierte Entscheidungen treffen und die Kompatibilität mit ihren Anwendungen sicherstellen.
Das obige ist der detaillierte Inhalt vonWie kann ich die installierte .NET Framework-Version und das installierte Service Pack effektiv ermitteln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!