Nasıl yapılır: Hangi .NET Framework sürümlerinin yüklü olduğunu belirleme
Not
Bu makale .NET Framework'e özgüdür. Hangi .NET Core ve .NET 5+ SDK'ların ve çalışma zamanlarının yüklü olduğunu belirlemek için bkz . .NET'in zaten yüklü olup olmadığını denetleme.
Bir bilgisayara .NET Framework'ün birden çok sürümünü yükleyebilir ve çalıştırabilirsiniz.
- Sürümleri kendi bilgisayarınızda denetlemek istiyorsanız, en kolay yol Denetim Masası> Programs>Programları ve Özellikleri'ni veya Uygulamalar>Yüklü uygulamalar altındaki Ayarlar'ı kullanmaktır. Topluluk tarafından korunan bu araçları da kullanabilirsiniz.
- Uygulama geliştiricisiyseniz, uygulama kullanıcısının bilgisayarında hangi .NET Framework sürümlerinin yüklü olduğunu bilmeniz gerekebilir. Kayıt defteri , bilgisayarda yüklü .NET Framework sürümlerinin listesini içerir. Özelliğini de sorgulayabilirsiniz
RuntimeInformation.FrameworkDescription
. - Ayrı olarak sürümlenen CLR sürümünü bulmak için bkz . CLR sürümlerini bulma.
.NET Framework, ayrı olarak sürümü oluşturulan iki ana bileşenden oluşur:
- Uygulamalarınız için işlevsellik sağlayan tür ve kaynak koleksiyonları olan bir derleme kümesi. .NET Framework ve derlemeler aynı sürüm numarasını paylaşır. Örneğin, .NET Framework sürümleri 4.5, 4.6.1 ve 4.7.2'yi içerir.
- Uygulamanızın kodunu yöneten ve yürüten ortak dil çalışma zamanı (CLR). Tek bir CLR sürümü genellikle birden çok .NET Framework sürümünü destekler. Örneğin, CLR sürüm 4.0.30319.xxxxx'in 42000'den küçük olduğu xxxxx , .NET Framework 4 ile 4.5.2 arasında sürümleri destekler. 4.0.30319.42000'den büyük veya buna eşit CLR sürümü, .NET Framework 4.6 ile başlayan .NET Framework sürümlerini destekler.
İpucu
.NET Framework'ün her sürümü için yüklü güncelleştirmeleri algılama hakkında bilgi için bkz . Nasıl yapılır: Hangi .NET Framework güncelleştirmelerinin yüklendiğini belirleme.
Topluluk tarafından korunan araçlar
Hangi .NET Framework sürümlerinin yüklü olduğunu algılamaya yardımcı olmak için topluluk tarafından korunan araçlar sağlanır:
RuntimeInformation.FrameworkDescription
mülk
Uygulamanızın hangi .NET sürümünde çalıştığını program aracılığıyla sorgulamak için özelliğini kullanabilirsiniz RuntimeInformation.FrameworkDescription . Uygulama .NET Framework üzerinde çalışıyorsa, çıkış şuna benzer olacaktır:
.NET Framework 4.8.4250.0
Karşılaştırmak gerekirse, uygulama .NET Core veya .NET 5+ üzerinde çalışıyorsa çıkış şuna benzer olacaktır:
.NET Core 3.1.9
.NET 5.0.0
Kayıt Defteri
Hangi .NET Framework sürümünün yüklü olduğunu algılamak için kayıt defterini kullanabilirsiniz. .NET Framework 1.0-4.0 ve .NET Framework 4.5+ için anahtarlar farklıdır. Kayıt defterini denetlemek için Kayıt Defteri Düzenleyicisi' ni, PowerShell'i veya kodu kullanabilirsiniz.
.NET Framework 4.5 ve sonraki sürümleri
Bir makineye yüklenen .NET Framework (4.5 ve üzeri) sürümü, HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full konumundaki kayıt defterinde listelenir. Tam alt anahtar eksikse, .NET Framework 4.5 veya üzeri yüklü değildir.
Not
Kayıt defteri yolundaki NET Framework Kurulum alt anahtarı bir nokta ile başlamaz.
Kayıt defterindeki Release REG_DWORD değeri yüklü .NET Framework sürümünü temsil eder.
.NET Framework sürümü | Yayın Değeri |
---|---|
.NET Framework 4.5 | Tüm Windows işletim sistemleri: 378389 |
.NET Framework 4.5.1 | Windows 8.1 ve Windows Server 2012 R2'de: 378675 Diğer tüm Windows işletim sistemlerinde: 378758 |
.NET Framework 4.5.2 | Tüm Windows işletim sistemleri: 379893 |
.NET Framework 4.6 | Windows 10'da: 393295 Diğer tüm Windows işletim sistemlerinde: 393297 |
.NET Framework 4.6.1 | Windows 10 Kasım Güncelleştirme sistemlerinde: 394254 Diğer tüm Windows işletim sistemlerinde (Windows 10 dahil): 394271 |
.NET Framework 4.6.2 | Windows 10 Yıldönümü Güncelleştirmesi ve Windows Server 2016'da: 394802 Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 394806 |
.NET Framework 4.7 | Windows 10 Creators Update'te: 460798 Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 460805 |
.NET Framework 4.7.1 | Windows 10 Fall Creators Update ve Windows Server'da sürüm 1709: 461308 Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 461310 |
.NET Framework 4.7.2 | Windows 10 Nisan 2018 Güncelleştirmesi ve Windows Server'da sürüm 1803: 461808 Windows 10 Nisan 2018 Update ve Windows Server dışındaki tüm Windows işletim sistemlerinde sürüm 1803: 461814 |
.NET Framework 4.8 | Windows 10 Mayıs 2019 Güncelleştirmesi ve Windows 10 Kasım 2019 Güncelleştirmesi: 528040 Windows 10 Mayıs 2020 Güncelleştirmesi, Ekim 2020 Güncelleştirmesi, Mayıs 2021 Güncelleştirmesi, Kasım 2021 Güncelleştirmesi ve 2022 Güncelleştirmesi: 528372 Windows 11 ve Windows Server 2022'de: 528449 Diğer tüm Windows işletim sistemlerinde (diğer Windows 10 işletim sistemleri dahil): 528049 |
.NET Framework 4.8.1 | Windows 11 2022 Güncelleştirmesi ve Windows 11 2023 Güncelleştirmesinde: 533320 Diğer tüm Windows işletim sistemleri: 533325 |
En düşük sürüm
.NET Framework'ün en düşük sürümünün mevcut olup olmadığını belirlemek için, aşağıdaki tabloda listelenen karşılık gelen değerden büyük veya buna eşit bir Release REG_DWORD değeri olup olmadığını denetleyin. Örneğin, uygulamanız .NET Framework 4.8 veya sonraki bir sürüm altında çalışıyorsa, 528040'tan büyük veya buna eşit bir Release REG_DWORD değeri için test edin.
.NET Framework sürümü | Minimum değer |
---|---|
.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 |
Kayıt Defteri Düzenleyicisi'ni Kullanma
Başlat menüsünde Çalıştır'ı seçin, regedit yazın ve ardından Tamam'ı seçin.
(Regedit'i çalıştırmak için yönetici kimlik bilgileriniz olmalıdır.)
Kayıt Defteri Düzenleyicisi'nde şu alt anahtarı açın: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full. Tam alt anahtar yoksa ,NET Framework 4.5 veya üzeri yüklü değildir.
Release adlı bir REG_DWORD girdisi olup olmadığını denetleyin. Varsa, .NET Framework 4.5 veya üzeri yüklüdür. Değeri belirli bir .NET Framework sürümüne karşılık gelir. Aşağıdaki şekilde, örneğin, Release girdisinin değeri 528040'tır ve .NET Framework 4.8'in yayın anahtarıdır.
En düşük sürümü denetlemek için PowerShell kullanma
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full alt anahtarının Release girişinin değerini denetlemek için PowerShell komutlarını kullanın.
Aşağıdaki örnekler, .NET Framework 4.6.2 veya sonraki bir sürümün yüklü olup olmadığını belirlemek için Yayın girdisinin değerini denetler. Bu kod yüklüyse ve False
değilse döndürürTrue
.
(Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802
Kodu kullanarak kayıt defterini sorgulama
Windows kayıt defterindeki RegistryKey.OpenBaseKey HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full alt anahtarına erişmek için ve RegistryKey.OpenSubKey yöntemlerini kullanın.
Önemli
Çalıştırdığınız uygulama 32 bitse ve 64 bit Windows'ta çalışıyorsa, kayıt defteri yolları daha önce listelenenden farklı olacaktır. 32 bit kayıt defteri, HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alt anahtarında bulunur. Örneğin, .NET Framework 4.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v4\Full şeklindedir.
Yüklü sürümü belirlemek için Release REG_DWORD değerini denetleyin. İleriye dönük uyumlu olmak için .NET Framework sürüm tablosunda listelenen değerden büyük veya buna eşit bir değer olup olmadığını denetleyin.
Aşağıdaki örnek, yüklü .NET Framework 4.5-4.8.1 sürümlerini bulmak için kayıt defterindeki Release girişinin değerini denetler.
İpucu
Henüz yapmadıysanız yönergesini using Microsoft.Win32
veya Imports Microsoft.Win32
kod dosyanızın en üstüne ekleyin.
const string subkey = @"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\";
using (var baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32))
using (var 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
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
Örnekte çıktı aşağıdaki gibi görüntülenir:
.NET Framework Version: 4.6.1
PowerShell kullanarak kayıt defterini sorgulama
Aşağıdaki örnek, yüklü .NET Framework 4.5-4.8.1 sürümlerini bulmak üzere kayıt defterindeki Release girişinin değerini denetlemek için PowerShell'i kullanır:
$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.'
}
Bu örnek, sürüm denetimi için önerilen uygulamayı izler:
- Yayın girdisinin değerinin bilinen sürüm değerlerinin değerinden büyük veya buna eşit olup olmadığını denetler.
- En son sürümden en eski sürüme doğru sırayla denetler.
.NET Framework 1.0-4.0
.NET Framework'ün 1.1 ile 4.0 sürümlerinden her biri HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP konumunda alt anahtar olarak listelenir. Aşağıdaki tabloda her .NET Framework sürümünün yolu listelenmektedir. Çoğu sürümde, bu sürümün yüklü olduğunu belirtmek için bir Install REG_DWORD değeri 1
vardır. Bu alt anahtarlarda, sürüm dizesi içeren bir Sürüm REG_SZ değeri de vardır.
Not
Kayıt defteri yolundaki NET Framework Kurulum alt anahtarı bir nokta ile başlamaz.
Çerçeve Sürümü | Kayıt Defteri Alt Anahtarı | Değer |
---|---|---|
1.0 | HKLM\Software\Microsoft\. NETFramework\Policy\v1.0\3705 | yükleme REG_SZ eşittir 1 |
1.1 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 | yükleme REG_DWORD eşittir 1 |
2.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | yükleme REG_DWORD eşittir 1 |
3.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup | InstallSuccess REG_DWORD eşittir 1 |
3.5 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 | yükleme REG_DWORD eşittir 1 |
4.0 İstemci Profili | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client | yükleme REG_DWORD eşittir 1 |
4.0 Tam Profil | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full | yükleme REG_DWORD eşittir 1 |
Önemli
Çalıştırdığınız uygulama 32 bitse ve 64 bit Windows'ta çalışıyorsa, kayıt defteri yolları daha önce listelenenden farklı olacaktır. 32 bit kayıt defteri, HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alt anahtarında bulunur. Örneğin, .NET Framework 3.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5 şeklindedir.
.NET Framework 1.0 alt anahtarının kayıt defteri yolunun diğerlerinden farklı olduğuna dikkat edin.
Kayıt Defteri Düzenleyicisi'ni kullanma (eski çerçeve sürümleri)
Başlat menüsünde Çalıştır'ı seçin, regedit yazın ve ardından Tamam'ı seçin.
Regedit'i çalıştırmak için yönetici kimlik bilgileriniz olmalıdır.
Denetlemek istediğiniz sürümle eşleşen alt anahtarı açın. .NET Framework 1.0-4.0 bölümündeki tabloyu kullanın.
Aşağıdaki şekilde alt anahtar ve .NET Framework 3.5 için Sürüm değeri gösterilmektedir.
Kodu kullanarak kayıt defterini sorgulama (eski çerçeve sürümleri)
Sınıfını Microsoft.Win32.RegistryKey kullanarak Windows kayıt defterindeki HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP alt anahtarına erişin.
Önemli
Çalıştırdığınız uygulama 32 bitse ve 64 bit Windows'ta çalışıyorsa, kayıt defteri yolları daha önce listelenenden farklı olacaktır. 32 bit kayıt defteri, HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ alt anahtarında bulunur. Örneğin, .NET Framework 3.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5 şeklindedir.
Aşağıdaki örnek yüklü .NET Framework 1-4 sürümlerini bulur:
// 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
Örnekte aşağıdakine benzer bir çıktı görüntülenir:
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
PowerShell kullanarak kayıt defterini sorgulama (eski çerçeve sürümleri)
Aşağıdaki örnek, yüklü .NET Framework 1-4 sürümlerini bulmak üzere kayıt defterindeki Release girişinin değerini denetlemek için PowerShell'i kullanır:
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)"
}
}
}
}
}
CLR sürümlerini bulma
.NET Framework ile yüklenen .NET Framework CLR ayrı olarak sürümü oluşturulur. .NET Framework CLR sürümünü algılamanın iki yolu vardır:
Clrver.exe aracı
Bir bilgisayarda hangi CLR sürümlerinin yüklü olduğunu belirlemek için CLR Sürüm aracını (Clrver.exe) kullanın. Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i açın ve girinclrver
.
Örnek çıkış:
Versions installed on the machine:
v2.0.50727
v4.0.30319
özelliği Environment.Version
Önemli
.NET Framework 4.5 ve sonraki sürümler için CLR sürümünü algılamak için özelliğini kullanmayın Environment.Version . Bunun yerine kayıt defterini .NET Framework 4.5 ve sonraki sürümlerde açıklandığı gibi sorgulayın.
Environment.Version Nesneyi almak Version için özelliğini sorgula.
Döndürülen
System.Version
nesne, kodu yürütmekte olan çalışma zamanının sürümünü tanımlar. Bilgisayarda yüklü olabilecek derleme sürümlerini veya çalışma zamanının diğer sürümlerini döndürmez..NET Framework sürüm 4, 4.5, 4.5.1 ve 4.5.2 için, döndürülen Version nesnenin dize gösterimi 4.0.30319 biçimindedir.xxxxx, burada xxxxx 42000'den küçüktür. .NET Framework 4.6 ve sonraki sürümleri için 4.0.30319.42000 biçimindedir.
Version nesnesini aldıktan sonra aşağıdaki gibi sorgulayın:
- Ana sürüm tanımlayıcısı için (örneğin, sürüm 4.0 için 4), özelliğini kullanın Version.Major .
- İkincil sürüm tanımlayıcısı için (örneğin, sürüm 4.0 için 0) özelliğini kullanınVersion.Minor.
- Sürüm dizesinin tamamı için (örneğin, 4.0.30319.18010), yöntemini kullanın Version.ToString . Bu yöntem, kodu yürüten çalışma zamanının sürümünü yansıtan tek bir değer döndürür. Bilgisayarda yüklü olabilecek derleme sürümlerini veya diğer çalışma zamanı sürümlerini döndürmez.
Aşağıdaki örnek, CLR sürüm bilgilerini almak için özelliğini kullanır Environment.Version :
Console.WriteLine($"Version: {Environment.Version}");
Console.WriteLine($"Version: {Environment.Version}")
Örnekte aşağıdakine benzer bir çıktı görüntülenir:
Version: 4.0.30319.18010