Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
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ı>Programları Programlar>ve Özellikler'i veya 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 değeri 42000'den küçükse, .NET Framework 4 ile 4.5.2 arası 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.
Tip
.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 özellik
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
Registry
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\Fullkonumundaki kayıt defterinde listelenir. Tam alt anahtar eksikse, .NET Framework 4.5 veya üzeri yüklü değildir.
Uyarı
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ştirmesinde: 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 2025 Güncelleştirmesinde: 533509 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 Yayın 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 aşağıdaki 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 True; değilse False döndürür.
(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.OpenBaseKeyRegistryKey.OpenSubKey alt anahtarına erişmek için ve 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.
Yüklü sürümü belirlemek için Yayın 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.
Tip
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 (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
Ö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'de 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.
Uyarı
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üklemek REG_SZ eşittir 1 |
| 1.1 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 |
Yüklemek REG_DWORD eşittir 1 |
| 2.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 |
Yüklemek 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üklemek REG_DWORD eşittir 1 |
| 4.0 İstemci Profili | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client |
Yüklemek REG_DWORD eşittir 1 |
| 4.0 Tam Profil | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full |
Yüklemek 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.
.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 .NET Framework 3.5 için alt anahtarın ve Sürüm değerinin gösterildiği görülmektedir.
Kodu kullanarak kayıt defterini sorgulama (eski çerçeve sürümleri)
Windows kayıt defterindeki Microsoft.Win32.RegistryKeyHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP alt anahtarına erişmek için sınıfını 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 3.5 için kayıt defteri alt anahtarı HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\NET Framework Setup\NDP\v3.5.
Aşağıdaki örnek yüklü .NET Framework 1-4 sürümlerini bulur:
// 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()
Ö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ümlenir. .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
Environment.Version özelliği
Önemli
.NET Framework 4.5 ve sonraki sürümler için, CLR sürümünü algılamak amacıyla Environment.Version özelliğini kullanmayın. Bunun yerine kayıt defterini .NET Framework 4.5 ve sonraki sürümlerde açıklandığı gibi sorgulayın.
Environment.Version özelliğini sorgulayarak bir Version nesnesi alın.
Döndürülen
System.Versionnesne, 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 .
- Küçük sürüm tanımlayıcısı için (örneğin versiyon 4.0 için 0), Version.Minor özelliğini kullanın.
- 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