Heim > Backend-Entwicklung > C++ > Wie überprüfe ich effizient die installierte .NET Framework-Version auf meinem System?

Wie überprüfe ich effizient die installierte .NET Framework-Version auf meinem System?

Linda Hamilton
Freigeben: 2025-01-15 11:38:48
Original
203 Leute haben es durchsucht

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

Bestimmen Sie ganz einfach die .NET Framework-Version

Entwickler müssen häufig die spezifische Version des .NET Framework bestimmen, die von einem System verwendet wird, insbesondere wenn sie auf bestimmte Funktionen abzielen oder eine bestimmte Version pflegen. Obwohl Environment.Version() nur in der Basisversion verfügbar ist, muss eine effiziente Möglichkeit gefunden werden, nach bestimmten Updates wie .NET 3.5 SP1 zu suchen.

Verwenden Sie die Registrierung

Eine mögliche Lösung besteht darin, auf die Windows-Registrierung zuzugreifen. Für die .NET-Versionen 1–4 kann der folgende einfache Code relevante Informationen extrahieren:

<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>
Nach dem Login kopieren

Umgang mit .NET 4.5

Für .NET 4.5 und höher bietet Microsoft ausführliche Dokumentationsanleitungen. Dieses Codebeispiel zeigt, wie die genaue installierte Version abgerufen wird:

<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>
Nach dem Login kopieren

Mit diesen Methoden können Entwickler nun ganz einfach die genaue Version von .NET Framework ermitteln, die auf ihren Systemen installiert ist, und so bestimmte Funktionen sicher nutzen und Kompatibilitätsprobleme beheben.

Das obige ist der detaillierte Inhalt vonWie überprüfe ich effizient die installierte .NET Framework-Version auf meinem System?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage