Определение установленных обновлений .NET Framework программным путём
Информация об установленных обновлениях каждой версии .NET Framework хранится в реестре Windows. Для просмотра этих данных можно использовать обычный редактор реестра regedit.
Открываем раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates, сведения о обновлениях лежат в подразделах с именами, соответствующими названиям версий .NET Framework.
Каждое обновление идентифицируется по номеру в базе знаний Microsoft (KB — Knowledge Base). Посмотреть подробные сведения о конкретном обновлении, можно подставив его номер в адрес вида http://support.microsoft.com/kb/999999.
Важно! Обновления версий .NET, которые являются компонентами системы, в данной ветке не выводятся! Узнать, какие версии идут в комплекте с операционной системой можно здесь.
Пример кода на C#, выводящего в консоль установленные обновления
высшим образованием. The working capital ratio is Working Capital Ratio = Current Assets / Current Liabilities.
using System;
using Microsoft.Win32;
public class NetUpdateHistory
{
public static void Main()
{
using (RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\Updates"))
{
foreach (string baseKeyName in baseKey.GetSubKeyNames())
{
if (baseKeyName.Contains(".NET Framework") || baseKeyName.StartsWith("KB") || baseKeyName.Contains(".NETFramework"))
{
using (RegistryKey updateKey = baseKey.OpenSubKey(baseKeyName))
{
string name = (string)updateKey.GetValue("PackageName", "");
Console.WriteLine(baseKeyName + " " + name);
foreach (string kbKeyName in updateKey.GetSubKeyNames())
{
using (RegistryKey kbKey = updateKey.OpenSubKey(kbKeyName))
{
name = (string)kbKey.GetValue("PackageName", "");
Console.WriteLine(" " + kbKeyName + " " + name);
if (kbKey.SubKeyCount > 0)
{
foreach (string sbKeyName in kbKey.GetSubKeyNames())
{
using (RegistryKey sbSubKey = kbKey.OpenSubKey(sbKeyName))
{
name = (string)sbSubKey.GetValue("PackageName", "");
if (name == "")
name = (string)sbSubKey.GetValue("Description", "");
Console.WriteLine(" " + sbKeyName + " " + name);
}
}
}
}
}
}
}
}
}
}
}
Данная программа выдаст примерно такой результат.
Microsoft .NET Framework 2.0 Service Pack 2
KB946503 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB946503)
KB946644 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB946644)
KB946927 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB946927)
KB947148 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB947148)
SP1
KB946102 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB946102)
KB946457 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB946457)
KB946573 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB946573)
KB948233v2 Hotfix for Microsoft .NET Framework 2.0 Service Pack 2 (KB948233)
SP2
KB2418241 Security Update for Microsoft .NET Framework 2.0 Service Pack 2 (KB2418241)
KB2604092 Security Update for Microsoft .NET Framework 2.0 Service Pack 2 (KB2604092)
KB2656352 Security Update for Microsoft .NET Framework 2.0 Service Pack 2 (KB2656352)
KB2656369v2 Security Update for Microsoft .NET Framework 2.0 Service Pack 2 (KB2656369v2)
KB2686828 Security Update for Microsoft .NET Framework 2.0 Service Pack 2 (KB2686828)
Microsoft .NET Framework 3.0 Service Pack 2
SP2
KB2604110 Security Update for Microsoft .NET Framework 3.0 Service Pack 1 (KB2604110)
KB2656407 Security Update for Microsoft .NET Framework 3.0 Service Pack 1 (KB2656407)
Microsoft .NET Framework 3.5 SP1
KB953595 Hotfix for Microsoft .NET Framework 3.5 SP1 (KB953595)
SP1
KB2604111 Security Update for Microsoft .NET Framework 3.5 SP1 (KB2604111)
KB2657424 Security Update for Microsoft .NET Framework 3.5 SP1 (KB2657424)
Microsoft .NET Framework 4 Client Profile
KB2461678 Hotfix for Microsoft .NET Framework 4 Client Profile (KB2461678)
KB2468871 Update for Microsoft .NET Framework 4 Client Profile (KB2468871)
KB2533523 Update for Microsoft .NET Framework 4 Client Profile (KB2533523)
KB2600217 Update for Microsoft .NET Framework 4 Client Profile (KB2600217)
KB2604121 Security Update for Microsoft .NET Framework 4 Client Profile (KB2604121)
Microsoft .NET Framework 4 Extended
KB2468871 Update for Microsoft .NET Framework 4 Extended (KB2468871)
KB2487367 Security Update for Microsoft .NET Framework 4 Extended (KB2487367)
KB2533523 Update for Microsoft .NET Framework 4 Extended (KB2533523)
KB2600217 Update for Microsoft .NET Framework 4 Extended (KB2600217)
KB2656351 Security Update for Microsoft .NET Framework 4 Extended (KB2656351)
Материалы по теме