In meinem Beitrag vom 25.Juli 2010 wurde gezeigt, wie man die installierten .NET-Framework-Versionen im Dateisystem findet.
Hier wird nun demonstriert, wie man die .NET-Framework-Versionen über die Registry ermittelt. Microsoft stellt in dem Dokument How to determine which versions and service pack levels of the Microsoft .NET Framework are installed Informationen zu den Registrykeys bereit.
Im nachfolgenden Beispielprogramm wird das Vorhandensein des .NET-Framework 3.5 geprüft. Als erstes wird dazu nach dem Key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 gesucht. Ist der Wert von Install 1, ist das .NET-Framework 3.5 installiert. Anschließend wird über SP das installierte Service Pack ermittelt – beim Original Release ist der Wert 0.
// RegistryKey / Registry benötigt Microsoft.Win32 Namespace
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(@“SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5″);
if (regKey != null)
{
object valueInstall = regKey.GetValue(„Install“);
if (valueInstall != null)
{
int vInstall = (int)valueInstall;
Console.WriteLine(@“Der Wert von Install ist {0}“, vInstall);
if (vInstall == 1)
{
Console.WriteLine(„.NET Framework 3.5 ist installiert“);
object valueSP = regKey.GetValue(„SP“);
if (valueSP != null)
{
int vSP = (int)valueSP;
if (vSP > 0)
{
Console.WriteLine(„SP {0} installiert“, vSP);
}
}
}
}
}
else
Console.WriteLine(@“RegistryKey HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5 nicht gefunden“);