Наш установщик WiX развертывает приложение .NET 4.0 WinForms на настольных компьютерах с Windows Vista и 7.Приложение включает переносимую библиотеку классов , для которой требуется патч .NET (KB2468871). В качестве обязательного условия нам необходимо установить патч. Существует несколько способов применения исправления:
Воспользовавшись советом аналогичного вопроса , я создал CustomAction
для проверки QFE (# 1), который, как я продемонстрировал, возвращает true при обнаружении.
private static bool IsPatchAlreadyInstalled()
{
// If the patch is installed, we can find it using WMI
var query = new SelectQuery("SELECT HotFixID FROM Win32_QuickFixEngineering WHERE HotFixID = 'Q2468871' OR HotFixID = 'KB2468871'");
var results = new ManagementObjectSearcher(query).Get();
return results.Count > 0;
}
К сожалению, это не удается на моей машине разработчика, поскольку патч был установлен как часть инструментов (# 2). Я еще не был свидетелем ситуации №3.
Как лучше всего определить, было ли применено исправление?