Instrukcje: określanie, które wersje programu .NET Framework są zainstalowane
Uwaga
Ten artykuł jest specyficzny dla programu .NET Framework. Aby określić, które zestawy .NET Core i .NET 5+ SDK i środowiska uruchomieniowe są zainstalowane, zobacz Jak sprawdzić, czy platforma .NET jest już zainstalowana.
Na komputerze można zainstalować i uruchomić wiele wersji programu .NET Framework.
- Jeśli chcesz sprawdzić wersje na własnym komputerze, najprostszym sposobem jest Panel sterowania> Programy>i funkcje lub w obszarze Ustawienia w obszarze Aplikacje zainstalowane aplikacje.> Możesz również użyć tych narzędzi obsługiwanych przez społeczność.
- Jeśli jesteś deweloperem aplikacji, może być konieczne poznanie, które wersje programu .NET Framework są zainstalowane na komputerze użytkownika aplikacji. Rejestr zawiera listę wersji programu .NET Framework zainstalowanych na komputerze. Możesz również wykonać zapytanie dotyczące
RuntimeInformation.FrameworkDescription
właściwości. - Aby znaleźć wersję środowiska CLR, która jest wersjonowana oddzielnie, zobacz Znajdowanie wersji środowiska CLR.
Program .NET Framework składa się z dwóch głównych składników, które są wersjonowane oddzielnie:
- Zestaw zestawów, które są kolekcjami typów i zasobów, które zapewniają funkcjonalność aplikacji. Program .NET Framework i zestawy mają ten sam numer wersji. Na przykład wersje programu .NET Framework obejmują 4.5, 4.6.1 i 4.7.2.
- Środowisko uruchomieniowe języka wspólnego (CLR), które zarządza i wykonuje kod aplikacji. Pojedyncza wersja środowiska CLR zwykle obsługuje wiele wersji programu .NET Framework. Na przykład CLR w wersji 4.0.30319.xxxxx, gdzie xxxxx jest mniejszy niż 42000, obsługuje program .NET Framework w wersji od 4 do 4.5.2. Wersja CLR większa niż lub równa 4.0.30319.42000 obsługuje wersje programu .NET Framework, począwszy od programu .NET Framework 4.6.
Napiwek
Aby uzyskać informacje na temat wykrywania zainstalowanych aktualizacji dla każdej wersji programu .NET Framework, zobacz Instrukcje: określanie, które aktualizacje programu .NET Framework są zainstalowane.
Narzędzia obsługiwane przez społeczność
Dostępne są narzędzia obsługiwane przez społeczność, które ułatwiają wykrywanie, które wersje programu .NET Framework są zainstalowane:
RuntimeInformation.FrameworkDescription
własność
Aby programowo wykonać zapytanie o wersję platformy .NET uruchomioną w aplikacji, możesz użyć RuntimeInformation.FrameworkDescription właściwości . Jeśli aplikacja jest uruchomiona w programie .NET Framework, dane wyjściowe będą podobne do następujących:
.NET Framework 4.8.4250.0
Dla porównania, jeśli aplikacja jest uruchomiona na platformie .NET Core lub .NET 5+, dane wyjściowe będą podobne do następujących:
.NET Core 3.1.9
.NET 5.0.0
Rejestr
Rejestru można użyć do wykrywania, która wersja programu .NET Framework jest zainstalowana. Klucze są różne dla programów .NET Framework 1.0-4.0 i .NET Framework 4.5+. Aby sprawdzić rejestr, możesz użyć Edytora rejestru, programu PowerShell lub kodu.
.NET Framework 4.5 i nowsze wersje
Wersja programu .NET Framework (4.5 lub nowsza) zainstalowana na maszynie jest wymieniona w rejestrze w HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Jeśli brakuje podklucza Pełne , program .NET Framework 4.5 lub nowszy nie jest zainstalowany.
Uwaga
Podklucz Instalatora programu NET Framework w ścieżce rejestru nie zaczyna się od kropki.
Wartość Release REG_DWORD w rejestrze reprezentuje zainstalowaną wersję programu .NET Framework.
Wersja systemu .NET Framework | Wartość wydania |
---|---|
.NET Framework 4.5 | Wszystkie systemy operacyjne Windows: 378389 |
.NET Framework 4.5.1 | W systemach Windows 8.1 i Windows Server 2012 R2: 378675 We wszystkich innych systemach operacyjnych Windows: 378758 |
.NET Framework 4.5.2 | Wszystkie systemy operacyjne Windows: 379893 |
.NET framework 4.6 | W systemie Windows 10: 393295 We wszystkich innych systemach operacyjnych Windows: 393297 |
.NET Framework 4.6.1 | W systemach aktualizacji systemu Windows 10 listopada: 394254 We wszystkich innych systemach operacyjnych Windows (w tym Windows 10): 394271 |
.NET Framework 4.6.2 | W rocznicowej aktualizacji systemu Windows 10 i windows Server 2016: 394802 We wszystkich innych systemach operacyjnych Windows (w tym w innych systemach operacyjnych Windows 10): 394806 |
.NET Framework 4.7 | W Aktualizacja systemu Windows 10 dla twórców: 460798 We wszystkich innych systemach operacyjnych Windows (w tym w innych systemach operacyjnych Windows 10): 460805 |
.NET Framework 4.7.1 | W systemie Windows 10 Fall Creators Update i Windows Server, wersja 1709: 461308 We wszystkich innych systemach operacyjnych Windows (w tym w innych systemach operacyjnych Windows 10): 461310 |
.NET Framework 4.7.2 | W systemie Windows 10 april 2018 Update i Windows Server, wersja 1803: 461808 We wszystkich systemach operacyjnych Windows innych niż Windows 10 april 2018 Update i Windows Server, wersja 1803: 461814 |
.NET Framework 4.8 | Na Aktualizacja systemu Windows 10 z maja 2019 i Windows 10 listopad 2019 Update: 528040 W systemie Windows 10 maj 2020 Update, aktualizacja z października 2020 r., aktualizacja z maja 2021 r., aktualizacja z listopada 2021 r. i aktualizacja z 2022 r.: 528372 W systemach Windows 11 i Windows Server 2022: 528449 We wszystkich innych systemach operacyjnych Windows (w tym w innych systemach operacyjnych Windows 10): 528049 |
.NET Framework 4.8.1 | W systemie Windows 11 2022 Update i Windows 11 2023 Update: 533320 Wszystkie inne systemy operacyjne Windows: 533325 |
Minimalna wersja
Aby określić, czy istnieje minimalna wersja programu .NET Framework, sprawdź wartość release REG_DWORD, która jest większa lub równa odpowiedniej wartości wymienionej w poniższej tabeli. Jeśli na przykład aplikacja działa w wersji .NET Framework 4.8 lub nowszej, przetestuj wartość release REG_DWORD większą lub równą 528040.
Wersja systemu .NET Framework | Wartość minimalna |
---|---|
.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 |
Używanie Edytora rejestru.
W menu Start wybierz pozycję Uruchom, wprowadź ciąg regedit, a następnie wybierz przycisk OK.
(Aby uruchomić regedit, musisz mieć poświadczenia administracyjne).
W Edytorze rejestru otwórz następujący podklucz: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Jeśli podklucz Full nie jest obecny, nie masz zainstalowanego programu .NET Framework 4.5 lub nowszego.
Sprawdź wpis REG_DWORD o nazwie Release( Wydanie). Jeśli istnieje, masz zainstalowany program .NET Framework 4.5 lub nowszy. Jego wartość odpowiada określonej wersji programu .NET Framework. Na poniższym rysunku na przykład wartość wpisu wydanie to 528040, czyli klucz wydania dla programu .NET Framework 4.8.
Sprawdzanie minimalnej wersji przy użyciu programu PowerShell
Użyj poleceń programu PowerShell, aby sprawdzić wartość wpisu Release HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full.
Poniższe przykłady sprawdzają wartość wpisu Wydanie , aby określić, czy jest zainstalowany program .NET Framework 4.6.2 lub nowszy. Ten kod zwraca True
wartość, jeśli jest zainstalowany i False
w inny sposób.
(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802
Wykonywanie zapytań względem rejestru przy użyciu kodu
RegistryKey.OpenBaseKey Użyj metod iRegistryKey.OpenSubKey, aby uzyskać dostęp do podklucza HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full w rejestrze systemu Windows.
Ważne
Jeśli uruchomiona aplikacja jest 32-bitowa i działa w 64-bitowym systemie Windows, ścieżki rejestru będą inne niż wcześniej wymienione. Rejestr 32-bitowy jest dostępny w podkluczu HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . Na przykład podklucz rejestru dla programu .NET Framework 4.5 jest HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full.
Sprawdź wartość REG_DWORD wydania, aby określić zainstalowaną wersję. Aby być zgodnym z przekazywaniem, sprawdź wartość większą lub równą wartości wymienionej w tabeli wersji programu .NET Framework.
Poniższy przykład sprawdza wartość wpisu Release w rejestrze, aby znaleźć zainstalowane wersje programu .NET Framework 4.5-4.8.1.
Napiwek
Dodaj dyrektywę using Microsoft.Win32
lub Imports Microsoft.Win32
w górnej części pliku kodu, jeśli jeszcze tego nie zrobiono.
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (var ndpKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).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 ndpKey As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).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
If releaseKey >= 533320 Then
Return "4.8.1 or later"
ElseIf releaseKey >= 528040 Then
Return "4.8"
ElseIf releaseKey >= 461808 Then
Return "4.7.2"
ElseIf releaseKey >= 461308 Then
Return "4.7.1"
ElseIf releaseKey >= 460798 Then
Return "4.7"
ElseIf releaseKey >= 394802 Then
Return "4.6.2"
ElseIf releaseKey >= 394254 Then
Return "4.6.1"
ElseIf releaseKey >= 393295 Then
Return "4.6"
ElseIf releaseKey >= 379893 Then
Return "4.5.2"
ElseIf releaseKey >= 378675 Then
Return "4.5.1"
ElseIf releaseKey >= 378389 Then
Return "4.5"
End If
' 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"
End Function
W przykładzie zostaną wyświetlone dane wyjściowe podobne do następujących:
.NET Framework Version: 4.6.1
Wykonywanie zapytań względem rejestru przy użyciu programu PowerShell
W poniższym przykładzie użyto programu PowerShell do sprawdzenia wartości wpisu Release w rejestrze w celu znalezienia wersji programu .NET Framework 4.5-4.8.1, które są zainstalowane:
$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.'
}
W tym przykładzie przedstawiono zalecaną praktykę sprawdzania wersji:
- Sprawdza, czy wartość wpisu release jest większa lub równa wartości znanych wartości wydania.
- Sprawdza kolejność od najnowszej wersji do najwcześniejszej.
.NET Framework 1.0-4.0
Każda wersja programu .NET Framework z wersji 1.1 do 4.0 jest wymieniona jako podklucz w lokalizacji HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP. W poniższej tabeli wymieniono ścieżkę do każdej wersji programu .NET Framework. W przypadku większości wersji istnieje wartość Install REG_DWORD wskazująca 1
, że ta wersja jest zainstalowana. W tych podkluczach istnieje również wartość Version REG_SZ, która zawiera ciąg wersji.
Uwaga
Podklucz Instalatora programu NET Framework w ścieżce rejestru nie zaczyna się od kropki.
Wersja platformy | Podklucz rejestru | Wartość |
---|---|---|
1.0 | HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 | Instalowanie REG_SZ równa się 1 |
1.1 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Instalowanie REG_DWORD równa się 1 |
2.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Instalowanie REG_DWORD równa się 1 |
3.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup | InstallSuccess REG_DWORD równa się 1 |
3.5 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 | Instalowanie REG_DWORD równa się 1 |
4.0 Profil klienta | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client | Instalowanie REG_DWORD równa się 1 |
Pełny profil 4.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full | Instalowanie REG_DWORD równa się 1 |
Ważne
Jeśli uruchomiona aplikacja jest 32-bitowa i działa w 64-bitowym systemie Windows, ścieżki rejestru będą inne niż wcześniej wymienione. Rejestr 32-bitowy jest dostępny w podkluczu HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . Na przykład podklucz rejestru dla programu .NET Framework 3.5 jest HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.
Zwróć uwagę, że ścieżka rejestru do podklucza .NET Framework 1.0 różni się od innych.
Korzystanie z Edytora rejestru (starsze wersje platformy)
W menu Start wybierz pozycję Uruchom, wprowadź ciąg regedit, a następnie wybierz przycisk OK.
Aby uruchomić regedit, musisz mieć poświadczenia administracyjne.
Otwórz podklucz zgodny z wersją, którą chcesz sprawdzić. Użyj tabeli w sekcji .NET Framework 1.0-4.0 .
Na poniższej ilustracji przedstawiono podklucz i jego wartość Wersja dla programu .NET Framework 3.5.
Wykonywanie zapytań względem rejestru przy użyciu kodu (starsze wersje platformy)
Microsoft.Win32.RegistryKey Użyj klasy , aby uzyskać dostęp do podklucza HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP w rejestrze systemu Windows.
Ważne
Jeśli uruchomiona aplikacja jest 32-bitowa i działa w 64-bitowym systemie Windows, ścieżki rejestru będą inne niż wcześniej wymienione. Rejestr 32-bitowy jest dostępny w podkluczu HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ . Na przykład podklucz rejestru dla programu .NET Framework 3.5 jest HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.
Poniższy przykład znajduje zainstalowane wersje programu .NET Framework 1-4:
// Open the registry key for the .NET Framework entry.
using (RegistryKey ndpKey =
RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).
OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\"))
{
foreach (var 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.
var name = (string)versionKey.GetValue("Version", "");
// Get the service pack (SP) number.
var sp = versionKey.GetValue("SP", "").ToString();
// Get the installation flag.
var 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))
{
continue;
}
// else print out info from subkeys...
// Iterate through the subkeys of the version subkey.
foreach (var subKeyName in versionKey.GetSubKeyNames())
{
RegistryKey subKey = versionKey.OpenSubKey(subKeyName);
name = (string)subKey.GetValue("Version", "");
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}");
}
}
}
}
}
}
' Opens the registry key for the .NET Framework entry.
Using 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 = DirectCast(versionKey.GetValue("Version", ""), String)
' 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
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
Continue For
End If
For Each subKeyName In versionKey.GetSubKeyNames()
Dim subKey As RegistryKey = versionKey.OpenSubKey(subKeyName)
name = DirectCast(subKey.GetValue("Version", ""), String)
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
Next
End If
Next
End Using
W przykładzie zostaną wyświetlone dane wyjściowe podobne do następujących:
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
Wykonywanie zapytań względem rejestru przy użyciu programu PowerShell (starsze wersje platformy)
W poniższym przykładzie użyto programu PowerShell do sprawdzenia wartości wpisu Release w rejestrze w celu znalezienia zainstalowanych wersji programu .NET Framework 1-4:
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)"
}
}
}
}
}
Znajdowanie wersji środowiska CLR
Środowisko .NET Framework CLR zainstalowane z programem .NET Framework jest wersjonowane oddzielnie. Istnieją dwa sposoby wykrywania wersji środowiska CLR programu .NET Framework:
Narzędzie Clrver.exe
Użyj narzędzia wersji środowiska CLR (Clrver.exe), aby określić, które wersje środowiska CLR są zainstalowane na komputerze. Otwórz wiersz polecenia dla deweloperów programu Visual Studio lub program Visual Studio Developer PowerShell i wprowadź polecenie clrver
.
Przykładowe dane wyjściowe:
Versions installed on the machine:
v2.0.50727
v4.0.30319
Właściwość Environment.Version
Ważne
W przypadku programu .NET Framework 4.5 i nowszych wersji nie używaj Environment.Version właściwości do wykrywania wersji środowiska CLR. Zamiast tego wykonaj zapytanie dotyczące rejestru zgodnie z opisem w programie .NET Framework 4.5 i nowszych wersjach.
Wykonaj zapytanie dotyczące właściwości w Environment.Version celu pobrania Version obiektu.
Zwrócony
System.Version
obiekt identyfikuje wersję środowiska uruchomieniowego, która aktualnie wykonuje kod. Nie zwraca wersji zestawu ani innych wersji środowiska uruchomieniowego, które mogły zostać zainstalowane na komputerze.W przypadku programu .NET Framework w wersji 4, 4.5, 4.5.1 i 4.5.2 reprezentacja zwracanego Version obiektu ma postać 4.0.30319.xxxxx, gdzie xxxxx jest mniejszy niż 42000. W przypadku programu .NET Framework 4.6 i nowszych wersji ma on postać 4.0.30319.42000.
Po uruchomieniu obiektu Version wykonaj zapytanie w następujący sposób:
- Dla głównego identyfikatora wydania (na przykład 4 dla wersji 4.0 ) użyj Version.Major właściwości .
- Dla identyfikatora wersji pomocniczej (na przykład 0 dla wersji 4.0) użyj Version.Minor właściwości .
- Dla całego ciągu wersji (na przykład 4.0.30319.18010) użyj Version.ToString metody . Ta metoda zwraca pojedynczą wartość, która odzwierciedla wersję środowiska uruchomieniowego wykonującego kod. Nie zwraca wersji zestawów ani innych wersji środowiska uruchomieniowego, które mogą być zainstalowane na komputerze.
W poniższym przykładzie użyto Environment.Version właściwości do pobrania informacji o wersji środowiska CLR:
Console.WriteLine($"Version: {Environment.Version}");
Console.WriteLine($"Version: {Environment.Version}")
W przykładzie zostaną wyświetlone dane wyjściowe podobne do następujących:
Version: 4.0.30319.18010