Merhaba.
C# ile sistemde hangi .NET Framework sürümünün yüklü olduğunu tespit etmeyi göstereceğim.
Gerekli kütüphaneler;
Kodumuz;
.NET Framework sürümü çekince oluşan sonuç;
.NET Framework sürümlerinin olduğunu ve çıktığı işletim sistemleri;
.NET Framework sürüm anahtar numraları;
.NET Framework 4.5 sürümü öncesinin tutulduğu kayıt defeteri konumları;
.NET Framework 4.5 sürümü öncesi sürümleri bulmak için gerekli kod;
Program üzerinde kullandığınız CLR Sürümünü öğrenmek için gerekli kod;
CLR sürümünün sonucu;
Kaynak: Determine which .NET Framework versions are installed - .NET Framework
İyi çalışmalar, kolay gelsin
C# ile sistemde hangi .NET Framework sürümünün yüklü olduğunu tespit etmeyi göstereceğim.
Gerekli kütüphaneler;
C#:
using System;
using Microsoft.Win32;
Kodumuz;
C#:
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 Sürümü: {CheckFor45PlusVersion((int)ndpKey.GetValue("Release"))}");
}else{
Console.WriteLine("NET Framework Sürüm 4.5 veya üstü algılanmadı.");
}
}
string CheckFor45PlusVersion(int releaseKey){
if(releaseKey >= 533320)
return "4.8.1 veya daha üstü bir sürüm mecvut.";
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";
return "4.5 veya daha sonraki sürümler tespit edilmedi.";
}
.NET Framework sürümü çekince oluşan sonuç;
.NET Framework sürümlerinin olduğunu ve çıktığı işletim sistemleri;
.NET Framework Sürümleri | Sürümü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 November Update 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, sürüm 1803: 461808 Windows 10 Nisan 2018 Güncelleştirmesi 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: Windows 528372 ve Windows Server 11'de 2022 : 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: 533320 Diğer tüm Windows işletim sistemleri: 533325 |
.NET Framework sürüm anahtar numraları;
.NET Framework Sürümleri | Sürüm Anahtar Değeri |
---|---|
.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 |
.NET Framework 4.5 sürümü öncesinin tutulduğu kayıt defeteri konumları;
.NET Framework Sürümü | Registry Subkey | Değeri |
---|---|---|
1.0 | HKLM\Software\Microsoft\.NETFramework\Policy\v1.0\3705 | Install REG_SZ equals 1 |
1.1 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v1.1.4322 | Install REG_DWORD equals 1 |
2.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727 | Install REG_DWORD equals 1 |
3.0 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.0\Setup | InstallSuccess REG_DWORD equals 1 |
3.5 | HKLM\Software\Microsoft\NET Framework Setup\NDP\v3.5 | Install REG_DWORD equals 1 |
4.0 Client Profile | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Client | Install REG_DWORD equals 1 |
4.0 Full Profile | HKLM\Software\Microsoft\NET Framework Setup\NDP\v4\Full | Install REG_DWORD equals 1 |
.NET Framework 4.5 sürümü öncesi sürümleri bulmak için gerekli kod;
C#:
// 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}");
}
}
}
}
}
}
Program üzerinde kullandığınız CLR Sürümünü öğrenmek için gerekli kod;
C#:
Console.WriteLine(Environment.Version);
CLR sürümünün sonucu;
Kaynak: Determine which .NET Framework versions are installed - .NET Framework
İyi çalışmalar, kolay gelsin
Son düzenleme: