Trình cài đặt WiX của chúng tôi triển khai ứng dụng .NET 4.0 WinForms cho Windows Vista và 7 máy tính để bàn. Ứng dụng bao gồm Portable Class Library yêu cầu .NET patch (KB2468871). Chúng ta cần phải cài đặt bản vá như là một điều kiện tiên quyết. Có nhiều cách khác nhau mà các bản vá có thể được áp dụng:Phát hiện và yêu cầu Windows QFE/vá trong khi cài đặt
- Tải bản vá KB2468871 và cài đặt nó
- Cài đặt Portable Library Tools
- Là một điều kiện tiên quyết sử dụng ClickOnce (có thể là một biến thể của # 1)
Sử dụng lời khuyên từ a similar question, tôi đã tạo một CustomAction
để kiểm tra QFE (# 1) mà tôi đã trình bày trả về đúng khi được tìm thấy.
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;
}
Thật không may, lỗi này không được cài đặt như một phần của Công cụ (# 2). Tôi chưa chứng kiến tình hình số 3.
Cách tốt hơn để phát hiện xem bản vá đã được áp dụng chưa?
Chúng tôi đang xác minh phương pháp này. Cảm ơn bạn vì câu trả lời! –