Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieser Artikel ist spezifisch für .NET Framework. Informationen dazu, welche .NET Core- und .NET 5+-SDKs und Laufzeiten installiert sind, finden Sie unter How to check that .NET is already installed.
Sie können mehrere Versionen von .NET Framework auf einem Computer installieren und ausführen.
- Wenn Sie die Versionen auf Ihrem eigenen Computer überprüfen möchten, besteht die einfachste Möglichkeit darin, über Systemsteuerung>Programme>Programme und Features oder in Einstellungen unter Apps>Installierte Apps zu gehen. Sie können diese von der Community verwalteten Tools auch verwenden.
- Wenn Sie ein App-Entwickler sind, müssen Sie möglicherweise wissen, welche .NET Framework-Versionen auf dem Computer des App-Benutzers installiert sind. Die Registrierung enthält eine Liste der auf dem Computer installierten Versionen von .NET Framework. Sie können die
RuntimeInformation.FrameworkDescriptionEigenschaft auch abfragen. - Informationen zum Suchen der CLR-Version, die separat versioniert ist, finden Sie unter "CLR-Versionen suchen".
.NET Framework besteht aus zwei Hauptkomponenten, die separat versioniert werden:
- Eine Reihe von Assemblys, bei denen es sich um Sammlungen von Typen und Ressourcen handelt, die die Funktionalität für Ihre Apps bereitstellen. .NET Framework und die Assemblys verwenden dieselbe Versionsnummer. .NET Framework-Versionen umfassen beispielsweise 4.5, 4.6.1 und 4.7.2.
- Die Common Language Runtime (CLR), die den Code Ihrer App verwaltet und ausführt. Eine einzelne CLR-Version unterstützt in der Regel mehrere .NET Framework-Versionen. Beispiel: CLR, Version 4.0.30319. xxxxx , wobei xxxxx kleiner als 42000 ist, unterstützt .NET Framework-Versionen 4 bis 4.5.2. CLR-Version größer oder gleich 4.0.30319.42000 unterstützt .NET Framework-Versionen ab .NET Framework 4.6.
Tipp
Informationen zum Ermitteln der installierten Updates für jede Version von .NET Framework finden Sie unter How to: Determine which .NET Framework updates are installed.
Von der Community gepflegte Werkzeuge
Community-verwaltete Tools stehen zur Verfügung, um zu erkennen, welche .NET Framework-Versionen installiert sind:
RuntimeInformation.FrameworkDescription-Eigenschaft
Um programmgesteuert abzufragen, auf welcher .NET-Version Ihre App ausgeführt wird, können Sie die RuntimeInformation.FrameworkDescription Eigenschaft verwenden. Wenn die App auf .NET Framework ausgeführt wird, ähnelt die Ausgabe folgendem:
.NET Framework 4.8.4250.0
Wenn die App auf .NET Core oder .NET 5+ ausgeführt wird, ist die Ausgabe vergleichbar mit:
.NET Core 3.1.9
.NET 5.0.0
Registratur
Mit der Registrierung können Sie ermitteln, welche .NET Framework-Version installiert ist. Die Schlüssel unterscheiden sich für .NET Framework 1.0-4.0 und .NET Framework 4.5+. Sie können den Registrierungs-Editor, PowerShell oder Code verwenden, um die Registrierung zu überprüfen.
.NET Framework 4.5 und höhere Versionen
Die auf einem Computer installierte Version von .NET Framework (4.5 und höher) wird in der Registrierung unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Fullaufgeführt. Wenn der vollständige Unterschlüssel fehlt, wird .NET Framework 4.5 oder höher nicht installiert.
Hinweis
Der Unterschlüssel "NET Framework Setup" im Registrierungspfad beginnt nicht mit einem Punkt.
Der Wert "Release REG_DWORD" in der Registrierung stellt die installierte Version von .NET Framework dar.
| .NET Framework-Version | Wert der Freigabe |
|---|---|
| .NET Framework 4.5 | Alle Windows-Betriebssysteme: 378389 |
| .NET Framework 4.5.1 | Unter Windows 8.1 und Windows Server 2012 R2: 378675 Auf allen anderen Windows-Betriebssystemen: 378758 |
| .NET Framework 4.5.2 | Alle Windows-Betriebssysteme: 379893 |
| .NET Framework 4.6 | Unter Windows 10: 393295 Auf allen anderen Windows-Betriebssystemen: 393297 |
| .NET Framework 4.6.1 | Unter Windows 10 November Update-Systemen: 394254 Unter allen anderen Windows-Betriebssystemen (einschließlich Windows 10): 394271 |
| .NET Framework 4.6.2 | Unter Windows 10 Anniversary Update und Windows Server 2016: 394802 Auf allen anderen Windows-Betriebssystemen (einschließlich anderer Windows 10-Betriebssysteme): 394806 |
| .NET Framework 4.7 | Unter Windows 10 Creators Update: 460798 Auf allen anderen Windows-Betriebssystemen (einschließlich anderer Windows 10-Betriebssysteme): 460805 |
| .NET Framework 4.7.1 | Unter Windows 10 Fall Creators Update und Windows Server, Version 1709: 461308 Auf allen anderen Windows-Betriebssystemen (einschließlich anderer Windows 10-Betriebssysteme): 461310 |
| .NET Framework 4.7.2 | Unter Windows 10 April 2018 Update und Windows Server, Version 1803: 461808 Auf allen anderen Windows-Betriebssystemen als Windows 10 April 2018 Update und Windows Server, Version 1803: 461814 |
| .NET Framework 4.8 | Unter Windows 10 Mai 2019 Update und Windows 10 November 2019 Update: 528040 Unter Windows 10 Mai 2020 Update, Oktober 2020 Update, Mai 2021 Update, November 2021 Update und 2022 Update: 528372 Unter Windows 11 und Windows Server 2022: 528449 Auf allen anderen Windows-Betriebssystemen (einschließlich anderer Windows 10-Betriebssysteme): 528049 |
| .NET Framework 4.8.1 | Unter Windows 11 2025 Update: 533509 Unter Windows 11 2022 Update und Windows 11 2023 Update: 533320 Alle anderen Windows-Betriebssysteme: 533325 |
Mindestversion
Um festzustellen, ob eine Mindestversion von .NET Framework vorhanden ist, suchen Sie nach einem Release-REG_DWORD Wert, der größer oder gleich dem in der folgenden Tabelle aufgeführten entsprechenden Wert ist. Wenn Ihre Anwendung beispielsweise unter .NET Framework 4.8 oder einer höheren Version ausgeführt wird, testen Sie einen Release-REG_DWORD Wert, der größer oder gleich 528040 ist.
| .NET Framework-Version | Minimalwert |
|---|---|
| .NET Framework 4.5 | 378389 |
| .NET Framework 4.5.1 | 378675 |
| .NET Framework 4.5.2 | 379893 |
| .NET Framework 4.6 | 393295 |
| .NET Framework 4.6.1 | 394254 |
| .NET Framework 4.6.2 | 394802 |
| .NET Framework 4.7 | 460798 |
| .NET Framework 4.7.1 | 461308 |
| .NET Framework 4.7.2 | 461808 |
| .NET Framework 4.8 | 528040 |
| .NET Framework 4.8.1 | 533320 |
Verwenden des Registrierungs-Editors
Wählen Sie im Startmenü"Ausführen" aus, geben Sie "regedit" ein, und wählen Sie dann "OK" aus.
(Sie müssen über Administratoranmeldeinformationen verfügen, um regedit auszuführen.)
Öffnen Sie im Registrierungs-Editor den folgenden Unterschlüssel: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Wenn der vollständige Unterschlüssel nicht vorhanden ist, ist .NET Framework 4.5 oder höher nicht installiert.
Suchen Sie nach einem REG_DWORD Eintrag namens Release. Falls vorhanden, ist .NET Framework 4.5 oder höher installiert. Der Wert entspricht einer bestimmten Version von .NET Framework. In der folgenden Abbildung ist beispielsweise der Wert des Releaseeintrags 528040, der der Releaseschlüssel für .NET Framework 4.8 ist.
Verwenden von PowerShell zum Überprüfen auf eine Mindestversion
Verwenden Sie PowerShell-Befehle, um den Wert des Release-Eintrags des Unterschlüssels HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full zu überprüfen.
In den folgenden Beispielen wird der Wert des Releaseeintrags überprüft, um festzustellen, ob .NET Framework 4.6.2 oder höher installiert ist. Dieser Code gibt zurück True , wenn er installiert ist und False andernfalls.
(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802
Abfragen der Registrierung mithilfe von Code
Verwenden Sie die RegistryKey.OpenBaseKey Methoden und RegistryKey.OpenSubKey Methoden, um auf den HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full Unterschlüssel in der Windows-Registrierung zuzugreifen.
Von Bedeutung
Wenn die app, die Sie ausführen, 32-Bit-Version ist und in 64-Bit-Windows ausgeführt wird, unterscheiden sich die Registrierungspfade von der zuvor aufgeführten Liste. Die 32-Bit-Registrierung ist im Unterschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ verfügbar. Der Registrierungsunterschlüssel für .NET Framework 4.5 ist z. B. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.
Überprüfen Sie den Wert "Release REG_DWORD", um die installierte Version zu ermitteln. Um vorwärtskompatibel zu sein, suchen Sie nach einem Wert, der größer oder gleich dem Wert ist, der in der .NET Framework-Versionstabelle aufgeführt ist.
Im folgenden Beispiel wird der Wert des Releaseeintrags in der Registrierung überprüft, um die versionen von .NET Framework 4.5-4.8.1 zu finden, die installiert sind.
Tipp
Fügen Sie die Direktive using Microsoft.Win32 oder Imports Microsoft.Win32 oben in der Codedatei hinzu, sofern dies noch nicht geschehen ist.
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32))
using (RegistryKey ndpKey = baseKey.OpenSubKey(subkey))
{
if (ndpKey != null && ndpKey.GetValue("Release") != null)
Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion((int)ndpKey.GetValue("Release"))}");
else
Console.WriteLine(".NET Framework Version 4.5 or later is not detected.");
}
// Checking the version using >= enables forward compatibility.
string CheckFor45PlusVersion(int releaseKey)
{
if (releaseKey >= 533320) return "4.8.1 or later";
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 >= 379893) return "4.5.2";
if (releaseKey >= 378675) return "4.5.1";
if (releaseKey >= 378389) return "4.5";
// This code 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";
}
Private Sub Get45PlusFromRegistry()
Const subkey As String = "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"
Using baseKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32),
ndpKey As RegistryKey = baseKey.OpenSubKey(subkey)
If ndpKey IsNot Nothing AndAlso ndpKey.GetValue("Release") IsNot Nothing Then
Console.WriteLine($".NET Framework Version: {CheckFor45PlusVersion(ndpKey.GetValue("Release"))}")
Else
Console.WriteLine(".NET Framework Version 4.5 or later is not detected.")
End If
End Using
End Sub
' Checking the version using >= enables forward compatibility.
Private Function CheckFor45PlusVersion(releaseKey As Integer) As String
Select Case releaseKey
Case >= 533320 : Return "4.8.1 or later"
Case >= 528040 : Return "4.8"
Case >= 461808 : Return "4.7.2"
Case >= 461308 : Return "4.7.1"
Case >= 460798 : Return "4.7"
Case >= 394802 : Return "4.6.2"
Case >= 394254 : Return "4.6.1"
Case >= 393295 : Return "4.6"
Case >= 379893 : Return "4.5.2"
Case >= 378675 : Return "4.5.1"
Case >= 378389 : Return "4.5"
Case Else
Return "No 4.5 or later version detected"
End Select
End Function
Im Beispiel wird die Ausgabe wie folgt angezeigt:
.NET Framework Version: 4.6.1
Abfragen der Registrierung mithilfe von PowerShell
Im folgenden Beispiel wird PowerShell verwendet, um den Wert des Releaseeintrags in der Registrierung zu überprüfen, um die Versionen von .NET Framework 4.5-4.8.1 zu finden, die installiert sind:
$release = Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release
switch ($release) {
{ $_ -ge 533320 } { $version = '4.8.1 or later'; break }
{ $_ -ge 528040 } { $version = '4.8'; break }
{ $_ -ge 461808 } { $version = '4.7.2'; break }
{ $_ -ge 461308 } { $version = '4.7.1'; break }
{ $_ -ge 460798 } { $version = '4.7'; break }
{ $_ -ge 394802 } { $version = '4.6.2'; break }
{ $_ -ge 394254 } { $version = '4.6.1'; break }
{ $_ -ge 393295 } { $version = '4.6'; break }
{ $_ -ge 379893 } { $version = '4.5.2'; break }
{ $_ -ge 378675 } { $version = '4.5.1'; break }
{ $_ -ge 378389 } { $version = '4.5'; break }
default { $version = $null; break }
}
if ($version) {
Write-Host -Object ".NET Framework Version: $version"
} else {
Write-Host -Object '.NET Framework Version 4.5 or later is not detected.'
}
Dieses Beispiel folgt der empfohlenen Vorgehensweise für die Versionsüberprüfung:
- Er überprüft, ob der Wert des Releaseeintragsgrößer oder gleich dem Wert der bekannten Releasewerte ist.
- Sie überprüft die Reihenfolge von der neuesten Version bis zur frühesten Version.
.NET Framework 1.0-4.0
Jede Version von .NET Framework von 1.1 bis 4.0 wird unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDPals Unterschlüssel aufgeführt. In der folgenden Tabelle sind die Pfade zu jeder .NET Framework-Version aufgeführt. Für die meisten Versionen gibt es einen REG_DWORD-Installationswert, mit dem 1 angegeben wird, dass diese Version installiert ist. In diesen Unterschlüsseln gibt es auch einen Version REG_SZ Wert, der eine Versionszeichenfolge enthält.
Hinweis
Der Unterschlüssel "NET Framework Setup" im Registrierungspfad beginnt nicht mit einem Punkt.
| Framework-Version | Registrierungsunterschlüssel | Wert |
|---|---|---|
| 1,0 | HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 |
Installieren REG_SZ ist gleich 1 |
| 1.1 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
Installieren REG_DWORD ist gleich 1 |
| 2.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
Installieren REG_DWORD ist gleich 1 |
| 3.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup |
InstallSuccess REG_DWORD ist gleich 1 |
| 3,5 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 |
Installieren REG_DWORD ist gleich 1 |
| 4.0 Clientprofil | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client |
Installieren REG_DWORD ist gleich 1 |
| 4.0 Vollständiges Profil | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full |
Installieren REG_DWORD ist gleich 1 |
Von Bedeutung
Wenn die app, die Sie ausführen, 32-Bit-Version ist und in 64-Bit-Windows ausgeführt wird, unterscheiden sich die Registrierungspfade von der zuvor aufgeführten Liste. Die 32-Bit-Registrierung ist im Unterschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ verfügbar. Der Registrierungsunterschlüssel für .NET Framework 3.5 ist z. B. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.
Beachten Sie, dass sich der Registrierungspfad zum .NET Framework 1.0-Unterschlüssel von den anderen unterscheidet.
Verwenden des Registrierungs-Editors (ältere Frameworkversionen)
Wählen Sie im Startmenü"Ausführen" aus, geben Sie "regedit" ein, und wählen Sie dann "OK" aus.
Sie müssen über Administratoranmeldeinformationen verfügen, um regedit auszuführen.
Öffnen Sie den Unterschlüssel, der der version entspricht, die Sie überprüfen möchten. Verwenden Sie die Tabelle im Abschnitt .NET Framework 1.0-4.0 .
Die folgende Abbildung zeigt den Unterschlüssel und dessen Versionswert für .NET Framework 3.5.
Abfragen der Registrierung mithilfe von Code (ältere Frameworkversionen)
Verwenden Sie die Microsoft.Win32.RegistryKey Klasse, um in der Windows-Registrierung auf den Unterschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP zuzugreifen.
Von Bedeutung
Wenn die app, die Sie ausführen, 32-Bit-Version ist und in 64-Bit-Windows ausgeführt wird, unterscheiden sich die Registrierungspfade von der zuvor aufgeführten Liste. Die 32-Bit-Registrierung ist im Unterschlüssel HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ verfügbar. Der Registrierungsunterschlüssel für .NET Framework 3.5 ist z. B. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.
Im folgenden Beispiel werden die Versionen von .NET Framework 1-4 gefunden, die installiert sind:
// Open the registry key for the .NET Framework entry. Dispose this object when done.
RegistryKey ndpKey =
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32)
.OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\");
foreach (string versionKeyName in ndpKey.GetSubKeyNames())
{
// Skip .NET Framework 4.5 version information.
if (versionKeyName == "v4")
continue;
if (versionKeyName.StartsWith("v"))
{
RegistryKey versionKey = ndpKey.OpenSubKey(versionKeyName);
// Get the .NET Framework version value.
string name = versionKey.GetValue("Version", "").ToString();
// Get the service pack (SP) number.
string sp = versionKey.GetValue("SP", "").ToString();
// Get the installation flag.
string install = versionKey.GetValue("Install", "").ToString();
if (string.IsNullOrEmpty(install))
{
// No install info; it must be in a child subkey.
Console.WriteLine($"{versionKeyName} {name}");
}
else if (install == "1")
{
// Install = 1 means the version is installed.
if (!string.IsNullOrEmpty(sp))
Console.WriteLine($"{versionKeyName} {name} SP{sp}");
else
Console.WriteLine($"{versionKeyName} {name}");
}
if (!string.IsNullOrEmpty(name))
{
versionKey.Dispose();
continue;
}
// Iterate through the subkeys of the version subkey.
foreach (string subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
name = subKey.GetValue("Version", "").ToString();
if (!string.IsNullOrEmpty(name))
sp = subKey.GetValue("SP", "").ToString();
install = subKey.GetValue("Install", "").ToString();
if (string.IsNullOrEmpty(install))
{
// No install info; it must be later.
Console.WriteLine($" {versionKeyName} {name}");
}
else if (install == "1")
{
if (!string.IsNullOrEmpty(sp))
Console.WriteLine($" {subKeyName} {name} SP{sp}");
else
Console.WriteLine($" {subKeyName} {name}");
}
// Clean up the subkey object.
subKey.Dispose();
}
versionKey.Dispose();
}
}
ndpKey.Dispose();
' Open the registry key for the .NET Framework entry. Dispose this object when done.
Dim ndpKey As RegistryKey =
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32) _
.OpenSubKey("SOFTWARE\Microsoft\NET Framework Setup\NDP\")
For Each versionKeyName In ndpKey.GetSubKeyNames()
' Skip .NET Framework 4.5 and later.
If versionKeyName = "v4" Then Continue For
If versionKeyName.StartsWith("v") Then
Dim versionKey As RegistryKey = ndpKey.OpenSubKey(versionKeyName)
' Get the .NET Framework version value.
Dim name = versionKey.GetValue("Version", "").ToString()
' Get the service pack (SP) number.
Dim sp = versionKey.GetValue("SP", "").ToString()
Dim install = versionKey.GetValue("Install", "").ToString()
If String.IsNullOrEmpty(install) Then
' No install info; it must be in a child subkey.
Console.WriteLine($"{versionKeyName} {name}")
ElseIf install = "1" Then
' Install = 1 means the version is installed.
If Not String.IsNullOrEmpty(sp) Then
Console.WriteLine($"{versionKeyName} {name} SP{sp}")
Else
Console.WriteLine($"{versionKeyName} {name}")
End If
End If
If Not String.IsNullOrEmpty(name) Then
versionKey.Dispose()
Continue For
End If
' Iterate through the subkeys of the version subkey.
For Each subKeyName In versionKey.GetSubKeyNames()
Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName)
name = subKey.GetValue("Version", "").ToString()
If Not String.IsNullOrEmpty(name) Then
sp = subKey.GetValue("SP", "").ToString()
End If
install = subKey.GetValue("Install", "").ToString()
If String.IsNullOrEmpty(install) Then
' No install info; it must be later.
Console.WriteLine($" {versionKeyName} {name}")
ElseIf install = "1" Then
If Not String.IsNullOrEmpty(sp) Then
Console.WriteLine($" {subKeyName} {name} SP{sp}")
Else
Console.WriteLine($" {subKeyName} {name}")
End If
End If
' Clean up the subkey object.
subKey.Dispose()
Next
versionKey.Dispose()
End If
Next
ndpKey.Dispose()
Im Beispiel wird die Ausgabe ähnlich wie folgt angezeigt:
v2.0.50727 2.0.50727.4927 SP2
v3.0 3.0.30729.4926 SP2
v3.5 3.5.30729.4926 SP1
v4.0
Client 4.0.0.0
Abfragen der Registrierung mithilfe von PowerShell (ältere Frameworkversionen)
Im folgenden Beispiel wird PowerShell verwendet, um den Wert des Releaseeintrags in der Registrierung zu überprüfen, um die installierten Versionen von .NET Framework 1-4 zu finden:
Get-ChildItem -Path 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' |
Where-Object { ($_.PSChildName -ne "v4") -and ($_.PSChildName -like 'v*') } |
ForEach-Object {
$name = $_.Version
$sp = $_.SP
$install = $_.Install
if (-not $install) {
Write-Host -Object "$($_.PSChildName) $($name)"
}
elseif ($install -eq '1') {
if (-not $sp) {
Write-Host -Object "$($_.PSChildName) $($name)"
}
else {
Write-Host -Object "$($_.PSChildName) $($name) SP$($sp)"
}
}
if (-not $name) {
$parentName = $_.PSChildName
Get-ChildItem -LiteralPath $_.PSPath |
Where-Object {
if ($_.Property -contains 'Version') { $name = $((Get-ItemProperty -Path "Registry::$_").Version) }
if ($name -and ($_.Property -contains 'SP')) { $sp = $((Get-ItemProperty -Path "Registry::$_").SP) }
if ($_.Property -contains 'Install') { $install = $((Get-ItemProperty -Path "Registry::$_").Install) }
if (-not $install) {
Write-Host -Object " $($parentName) $($name)"
}
elseif ($install -eq '1') {
if (-not $sp) {
Write-Host -Object " $($_.PSChildName) $($name)"
}
else {
Write-Host -Object " $($_.PSChildName) $($name) SP$($sp)"
}
}
}
}
}
Suchen nach CLR-Versionen
Die .NET Framework-CLR, die mit .NET Framework installiert ist, wird separat versioniert. Es gibt zwei Möglichkeiten, die Version von .NET Framework CLR zu erkennen:
Das Clrver.exe-Tool
Verwenden Sie das CLR-Versionstool (Clrver.exe), um zu bestimmen, welche Versionen der CLR auf einem Computer installiert sind. Öffnen Sie die Visual Studio Developer-Eingabeaufforderung oder Visual Studio Developer PowerShell , und geben Sie die Zeichenfolge ein clrver.
Beispielausgabe:
Versions installed on the machine:
v2.0.50727
v4.0.30319
Die Environment.Version-Eigenschaft
Von Bedeutung
Verwenden Sie nicht die Eigenschaft Environment.Version, um für .NET Framework 4.5 und höhere Versionen die Version der CLR zu erkennen. Fragen Sie stattdessen die Registrierung ab, wie in .NET Framework 4.5 und höheren Versionen beschrieben.
Fragen Sie die Environment.Version Eigenschaft ab, um ein Version Objekt abzurufen.
Das zurückgegebene
System.VersionObjekt identifiziert die Version der Laufzeit, die derzeit den Code ausführt. Assemblyversionen oder andere Versionen der Laufzeit, die möglicherweise auf dem Computer installiert wurden, werden nicht zurückgegeben.Für .NET Framework-Versionen 4, 4.5, 4.5.1 und 4.5.2 weist die Zeichenfolgendarstellung des zurückgegebenen Version Objekts das Format 4.0.30319 auf.xxxxx, wobei xxxxx kleiner als 42000 ist. Für .NET Framework 4.6 und höhere Versionen hat sie das Format 4.0.30319.42000.
Nachdem Sie über das Version-Objekt verfügen, fragen Sie es wie folgt ab:
- Verwenden Sie für den Hauptversionsbezeichner (z. B. 4 für Version 4.0) die Version.Major Eigenschaft.
- Verwenden Sie für die Nebenversions-ID (z. B. 0 für Version 4.0) die Version.Minor Eigenschaft.
- Verwenden Sie für die gesamte Versionszeichenfolge (z. B. 4.0.30319.18010) die Version.ToString Methode. Diese Methode gibt einen einzelnen Wert zurück, der die Version der Laufzeit widerspiegelt, die den Code ausführt. Assemblyversionen oder andere Laufzeitversionen, die möglicherweise auf dem Computer installiert sind, werden nicht zurückgegeben.
Im folgenden Beispiel wird die Environment.Version-Eigenschaft verwendet, um CLR-Versionsinformationen abzurufen.
Console.WriteLine($"Version: {Environment.Version}");
Console.WriteLine($"Version: {Environment.Version}")
Im Beispiel wird die Ausgabe ähnlich wie folgt angezeigt:
Version: 4.0.30319.18010