Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Gewusst wie: Bestimmen der installierten .NET Framework-Versionen

.NET Framework 4.5

Benutzer können mehrere Versionen von .NET Framework auf einem Computer installieren und ausführen. Wenn Sie eine App entwickeln oder bereitstellen, müssen Sie möglicherweise herausfinden, welche Versionen von .NET Framework auf dem Computer des Benutzers installiert sind. Beachten Sie, dass .NET Framework aus zwei Hauptkomponenten besteht, deren Versionen separat voneinander sind:

  • Ein Satz von Assemblys, bei denen es sich um Sammlungen von Typen und Ressourcen handelt, die die Funktionalität Ihre Apps bereitstellen. .NET Framework und Assemblys verwenden die gleiche Versionsnummer.

  • Die CLR (Common Language Runtime, CLR), die den Code Ihrer App verwaltet und ausführt. Die CLR wird durch ihre eigene Versionsnummer identifiziert (siehe .NET Framework-Versionen und -Abhängigkeiten).

Sie können die Registrierung öffnen oder in Ihrem Code abfragen, um eine exakte Liste der auf einem Computer installierten Versionen von .NET Framework zu erhalten:

      Anzeigen der Registrierung (Versionen 1-4)
      Anzeigen der Registrierung ( Version 4.5 und neuer)
      Codegesteuertes Anzeigen der Registrierung (Versionen 1-4)
      Codegesteuertes Anzeigen der Registrierung (Version 4.5 und neuer)

Sie können ein Tool oder Code verwenden, um die CLR-Version zu ermitteln:

      Verwenden des Clrver-Tools
      Codegesteuertes Abfragen der System.Environment-Klasse

Informationen zum Ermitteln der installierten Updates für jede Version von .NET Framework finden Sie unter Gewusst wie: Bestimmen der installierten .NET Framework-Updates. Informationen zum Installieren von .NET Framework finden Sie im Installationshandbuch.

Ermitteln der .NET Framework-Versionen durch Anzeigen der Registrierung (.NET Framework 1-4)

  1. Klicken Sie im Menü Start auf Ausführen.

  2. Im Feld Öffnen geben Sie regedit.exe ein.

    Sie müssen über Administratorrechte verfügen, um regedit.exe ausführen zu können.

  3. Öffnen Sie im Registrierungs-Editor den folgenden Unterschlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP

    Die installierten Versionen werden unter dem NDP-Unterschlüssel aufgeführt. Die Versionsnummer ist unter dem Eintrag Version gespeichert. In der .NET Framework 4-Version oder höher befindet sich der Eintrag Version unter dem Client- oder Full-Unterschlüssel (unter NDP) oder unter beiden Unterschlüsseln.

    Hinweis Hinweis

    Der Ordner "NET Framework Setup" in der Registrierung beginnt nicht mit einem Punkt.

Ermitteln der .NET Framework-Versionen durch Anzeigen der Registrierung (.NET Framework 4.5 und neuer)

  1. Klicken Sie im Menü Start auf Ausführen.

  2. Im Feld Öffnen geben Sie regedit.exe ein.

    Sie müssen über Administratorrechte verfügen, um regedit.exe ausführen zu können.

  3. Öffnen Sie im Registrierungs-Editor den folgenden Unterschlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full

    Hinweis Hinweis

    Wenn der Full-Unterschlüssel nicht vorhanden ist, ist .NET Framework 4.5 oder höher nicht installiert.

    Suchen Sie nach einem DWORD-Wert mit dem Namen Release. Wenn das Release-DWORD vorhanden ist, können Sie von der Installation von .NET Framework 4.5 oder höher auf dem Computer ausgehen.

    Registrierungseintrag für .NET Framework 4.5

    Der Wert von Release gibt an, welche Version von .NET Framework installiert ist.

    Wert des Versions-DWORD

    Version

    378389

    .NET Framework 4.5

    378675

    .NET Framework 4.5.1 installiert mit Windows 8.1 oder Windows Server 2012 R2

    378758

    .NET Framework 4.5.1 installiert unter Windows 8, Windows 7 SP1 oder Windows Vista SP2

    379893

    .NET Framework 4.5.2

    381029

    .NET Framework 4.6 RC

Ermitteln der .NET Framework-Versionen durch codegesteuertes Abfragen der Registrierung (.NET Framework 1-4)

  • Verwenden Sie die Microsoft.Win32.RegistryKey-Klasse, um auf den Unterschlüssel "Software\Microsoft\NET Framework Setup\NDP\" unter "HKEY_LOCAL_MACHINE" in der Windows-Registrierung zuzugreifen.

    Der folgende Code veranschaulicht diese Abfrage beispielhaft.

    Hinweis Hinweis

    Dieser Code demonstriert nicht, wie .NET Framework 4.5 oder später zu erkennen ist. Zum Erkennen dieser Versionen überprüfen Sie das Release-DWORD, wie im vorherigen Abschnitt beschrieben.

    
    using System;
    using Microsoft.Win32;
    
    
    ...
    
    
    private static void GetVersionFromRegistry()
    {
         // Opens the registry key for the .NET Framework entry.
            using (RegistryKey ndpKey = 
                RegistryKey.OpenRemoteBaseKey(RegistryHive.LocalMachine, "").
                OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
            {
                // As an alternative, if you know the computers you will query are running .NET Framework 4.5 
                // or later, you can use:
                // using (RegistryKey ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, 
                // RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
            foreach (string versionKeyName in ndpKey.GetSubKeyNames())
            {
                if (versionKeyName.StartsWith("v"))
                {
    
                    RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
                    string name = (string)versionKey.GetValue("Version", "");
                    string sp = versionKey.GetValue("SP", "").ToString();
                    string install = versionKey.GetValue("Install", "").ToString();
                    if (install == "") //no install info, must be later.
                        Console.WriteLine(versionKeyName + "  " + name);
                    else
                    {
                        if (sp != "" && install == "1")
                        {
                            Console.WriteLine(versionKeyName + "  " + name + "  SP" + sp);
                        }
    
                    }
                    if (name != "")
                    {
                        continue;
                    }
                    foreach (string subKeyName in versionKey.GetSubKeyNames())
                    {
                        RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
                        name = (string)subKey.GetValue("Version", "");
                        if (name != "")
                            sp = subKey.GetValue("SP", "").ToString();
                        install = subKey.GetValue("Install", "").ToString();
                        if (install == "") //no install info, must be later.
                            Console.WriteLine(versionKeyName + "  " + name);
                        else
                        {
                            if (sp != "" && install == "1")
                            {
                                Console.WriteLine("  " + subKeyName + "  " + name + "  SP" + sp);
                            }
                            else if (install == "1")
                            {
                                Console.WriteLine("  " + subKeyName + "  " + name);
                            }
    
                        }
    
                    }
    
                }
            }
        }
    
    }
    
    
    

    Das Beispiel führt zu einer Ausgabe, die der folgenden Ausgabe ähnelt:

    
    v2.0.50727  2.0.50727.4016  SP2
    v3.0  3.0.30729.4037  SP2
    v3.5  3.5.30729.01  SP1
    v4
      Client  4.0.30319
      Full  4.0.30319
    

Ermitteln der .NET Framework-Versionen durch codegesteuertes Abfragen der Registrierung (.NET Framework 4.5 und neuer)

  1. Wenn das Release-DWORD vorhanden ist, können Sie davon ausgehen, dass .NET Framework 4.5 oder neuer auf dem Computer installiert ist. Der Wert des Schlüsselworts gibt die installierte Version an. Verwenden Sie die OpenBaseKey- und OpenSubKey-Methoden, der Microsoft.Win32.RegistryKey-Klasse, um auf den Unterschlüssel "Software\Microsoft\NET Framework Setup\NDP\v4.0\Full" unter "HKEY_LOCAL_MACHINE" in der Windows-Registrierung zuzugreifen.

  2. Überprüfen Sie den Wert des Release-Schlüsselworts, um die installierte Version zu bestimmen. Um aufwärtskompatibel zu sein, können Sie einen Wert größer als oder gleich den Werten suchen, die in der Tabelle aufgelistet sind. Dies sind die .NET Framework-Versionen und die jeweiligen Release-Schlüsselwörter.

    Version

    Wert des Versions-DWORD

    .NET Framework 4.5

    378389

    .NET Framework 4.5.1 installiert mit Windows 8.1

    378675

    .NET Framework 4.5.1 installiert unter Windows 8, Windows 7 SP1 oder Windows Vista SP2

    378758

    .NET Framework 4.5.2

    379893

    .NET Framework 4.6 RC

    381029

    Hier ist ein Beispiel für die Suche nach einem Wert größer als oder gleich den Werten des Versionsschlüsselworts für die einzelnen Versionen:

    
    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));
    		}
    	}
    }
    
    
    ...
    
    
    // Checking the version using >= will enable forward compatibility, 
    // however you should always compile your code on newer versions of
    // the framework to ensure your app works the same.
    private static string CheckFor45DotVersion(int releaseKey)
    {
       if (releaseKey >= 393273) {
          return "4.6 RC or later";
       }
       if ((releaseKey >= 379893)) {
    		return "4.5.2 or later";
    	}
    	if ((releaseKey >= 378675)) {
    		return "4.5.1 or later";
    	}
    	if ((releaseKey >= 378389)) {
    		return "4.5 or later";
    	}
    	// This line should never execute. A non-null release key should mean
    	// that 4.5 or later is installed.
    	return "No 4.5 or later version detected";
    }
    
    
    

    Das Beispiel führt zu einer Ausgabe, die der folgenden Ausgabe ähnelt:

    Version: 4.5.1 or later
    

Ermitteln der aktuellen Laufzeitversion mithilfe des Clrver-Tools

  • Verwenden Sie das CLR-Versions-Tool (Clrver.exe), um zu bestimmen, welche Versionen der Common Language Runtime auf einem Computer installiert sind.

    Geben Sie bei einer Visual Studio-Eingabeaufforderung clrver ein. Dieser Befehl erzeugt eine Ausgabe ähnlich der folgenden:

    Versions installed on the machine:
    v2.0.50727
    v4.0.30319
    

    Weitere Informationen über die Verwendung dieses Tools finden Sie unter Clrver.exe (CLR-Versionstool).

Ermitteln der aktuellen Laufzeitversion durch programmgesteuerte Abfragen der "Environment"-Klasse

  • Fragen Sie die Version-Eigenschaft der Environment-Klasse ab, um die Version der Laufzeit zu identifizieren, die gerade Code ausführt. Sie können die Version.Major-Eigenschaft verwenden, um den Hauptversionsbezeichner (beispielsweise "4 " für Version 4.0) abzurufen, die Version.Minor-Eigenschaft, um den Nebenversionsbezeichner abzurufen (beispielsweise "0 " für Version 4.0) oder die Object.ToString-Methode aufrufen, um die gesamte Versionszeichenfolge (beispielsweise "4.0.30319.18010") abzurufen, wie im folgenden Code gezeigt. Diese Eigenschaft gibt einen einzelnen Wert zurück, der die Version der Laufzeit angibt, die gerade den Code ausführt; sie gibt keine Assemblyversionen oder andere Versionen der Laufzeit zurück, die möglicherweise auf dem Computer installiert sind.

    Der folgende Code zeigt ein Beispiel für die Abfrage der Environment.Version-Eigenschaft auf Laufzeitversionsinformationen:

    
    using System;
    using Microsoft.Win32;
    
    
    ...
    
    
    private static void GetVersionFromEnvironment()
    {
        Console.WriteLine("Version: " + Environment.Version.ToString());
    
    }
    
    
    

    Das Beispiel führt zu einer Ausgabe, die der folgenden Ausgabe ähnelt:

    Version: 4.0.30319.18010
    

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2015 Microsoft