使用可轉移元件

轉移元件的一般用途是準備產品,以在系統升級期間重新安裝。 安裝套件的作者指定在系統升級期間需要交換的元件,因為具有可轉移屬性。 當使用者稍後升級系統時,必須重新安裝產品。 重新安裝時,安裝程式會移除先前的元件,並安裝較新的元件,而不需要安裝整個產品。

在安裝套件中包含兩個可轉移元件

  1. 在安裝套件中包含這兩個可轉移的元件。

  2. 將這兩個可轉移元件撰寫到 元件資料表 中,與一般元件相同。 每個可轉移的元件都必須在 ComponentId 資料行中指定自己的唯一 GUID。

  3. 在每個可轉移元件的 [元件] 資料表的 [屬性] 資料行中包含 msidbComponentAttributesTransitive 位。 如果設定此位,安裝程式會在重新安裝時重新評估 [條件] 資料行中的 語句值。

    如果值先前為 False 且已變更為 True,則安裝程式會安裝元件。

    如果值先前為 True,且已變更為 False,即使元件有其他產品做為用戶端,安裝程式仍會移除元件。

    注意

    除非設定可轉移位,否則即使條件陳述式在後續產品的維護安裝上評估為 False,元件仍會保持啟用狀態。 條件必須只根據電腦狀態。 請勿根據命令列上設定的使用者狀態或屬性來搭配條件使用,因為這可能會導致安裝程式需要在不同使用者使用時重新安裝產品。

     

  4. 在 Control 資料表的 [條件] 欄位中輸入互補的條件運算式,讓第一個可轉移元件的條件變更為 False 時,第二個可轉移元件的條件會變更為 True。 這會導致在重新安裝應用程式時移除第一個元件,並安裝第二個元件。

需要重新安裝產品才能切換可轉移的元件。 因此,套件作者需要為使用者提供重新安裝產品的方法,以及設定 REINSTALLMODE 屬性的模式。 基本上有三種方式可以觸發重新安裝:

位應該只與以電腦狀態為基礎的條件搭配使用。 請勿根據命令列上設定的使用者狀態或屬性來搭配條件使用,因為這可能會導致安裝程式需要在不同使用者使用時重新安裝產品。

注意

除非已為元件設定 Attributes 資料行中的可轉移位,否則即使 [條件] 資料行中的條件陳述式在後續產品的維護安裝上評估為 False,元件仍會保持啟用狀態。

在大部分情況下,如果應用程式包含可轉移的元件,Windows Installer 需要應用程式的來源才能修復或升級應用程式。 在這些情況下,原始設備製造商所提供的系統還原 CD-ROM 無法運作,而且必須提供應用程式的實際安裝來源。