PATCH 屬性
安裝程式會呼叫MsiApplyPatch、MsiApplyMultiplePatches或 /p命令列選項,將PATCH屬性設定為要套用的修補程式清單。 您也可以在使用MsiInstallProduct或 /i 命令列選項安裝套件時,在命令列上設定PATCH屬性。
PATCH屬性的值是要安裝的修補程式清單。 清單中的每個修補程式都是以修補程式套件的完整路徑 (.msp file.) 清單中的完整路徑以分號分隔。
Windows Installer 2.0: 不支援多個修補程式。 需要 Windows Installer 3.0 才能套用多個修補程式。
如果您使用 Msimsp.exe 和 Patchwiz.dll 建立修補程式套件,您可以指定只有在套用特定修補程式時,才會執行動作或對話方塊。 當您建立修補程式套件時,例如 test.msp,您會撰寫產品的升級映射和修補程式建立屬性檔案。 撰寫修補程式建立屬性檔案時,您可以在 ImageFamilies 資料表的 MediaSrcPropName 欄位中輸入屬性名稱,例如 PATCHFORTEST。 當您撰寫產品升級映射的時序表時,可以在順序資料表的 [條件] 資料行中包含您想要設定條件的動作或對話方塊的條件陳述式。
例如,只有在套用 test.msp 時,才可以使用下列條件陳述式來執行動作或對話方塊。
- PATCH 和 PATCHFORTEST 和 PATCH >< PATCHFORTEST
注意
因為 PATCH屬性可以包含多個修補程式,所以請使用子字串運算子 「 >< 」 來測試特定修補程式是否存在,而不是等於運算子 「=」。 如需條件陳述式的詳細資訊,請參閱 條件陳述式語法 一節。
如果您套用包含 test.msp 的修補程式清單,安裝程式會設定這兩個屬性。 例如,您可以使用 /p 命令列選項 來套用兩個修補程式的清單。
msiexec /qb /p \\scratch\scratch\XYZ\Patchs\test.msp;\\scratch\scratch\XYZ\bar.msp
安裝程式會設定 PATCH 和 PATCHFORTEST 屬性,如下所示。
- PATCH=\\\scratch\\scratch\\XYZ\\Patchs\\test.msp;\\\scratch\\scratch\\scratch\\XYZ\\bar.msp PATCHFORTEST=\\\\scratch\\scratch\\XYZ\\Patchs\\test.msp
在此情況下,條件為 TRUE,且上述條件動作或對話方塊可以針對要安裝的每個修補程式、test.msp 和 bar.msp 執行。
如果未套用 test.msp,安裝程式就不會在 PATCH 屬性中包含它,也不會設定 PATCHFORTEST 。 在此情況下,上述條件為 FALSE,且條件動作或對話方塊不會執行。
需求 | 值 |
---|---|
版本 |
Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer。 如需 Windows Installer 版本所需的最低 Windows Service Pack 相關資訊,請參閱 Windows Installer Run-Time需求 。 |