我們的WiX安裝程序將.NET 4.0 WinForms應用程序部署到Windows Vista和7臺桌面。該應用程序包括一個Portable Class Library,需要.NET patch(KB2468871)。我們需要安裝該補丁程序作爲先決條件。有跡象表明,該補丁可應用於多種方式:在安裝過程中檢測並需要Windows QFE /補丁
- 下載KB2468871補丁,並安裝它
- 安裝Portable Library Tools
- 作爲使用ClickOnce的先決條件(可能是#1的變化)
使用a similar question的建議,我創建了一個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。
什麼是檢測補丁是否已被應用的更好方法?
我們正在驗證這種方法。謝謝您的回答! – 2012-03-01 20:49:44