共用方式為


使用 API 將合併模組合併至資料庫

合併模組 提供標準方法,讓開發人員將共用的 Windows Installer 元件 和設定邏輯傳遞給其應用程式。 合併模組必須使用合併工具合併到安裝套件中。 最佳的選擇是取得免費提供的合併工具,或購買第三方軟體供應商提供的合併工具。 例如,您可以使用 Mergemod.dll所提供的功能。

依照順序使用下列步驟,將合併元件合併至 Windows Installer 安裝資料庫,透過 Mergemod.dll的 API。

將合併模組合併至 Windows Installer 安裝資料庫

  1. 使用 OpenLog開啟記錄檔。 只有在您需要為合併程式建立記錄檔或附加現有的記錄檔時,才需要此步驟。

  2. 開啟安裝資料庫,.msi 檔案,它會使用 OpenDatabase來接收合併模組。 需要此步驟。

  3. 開啟合併模組,.msm 檔案,正使用 openModule合併至資料庫。 模組必須先開啟,才能與安裝資料庫合併。 需要此步驟。

  4. 使用 MergeMergeEx,將模組合併至安裝資料庫。 請注意,MergeMergeEx 只能呼叫一次,以合併特定 .msi 和 .msm 檔案的組合。 MergeEx 僅適用於使用 Mergemod.dll 2.0 版或更新版本,且只有在使用 IMsmMerge2 介面時才可使用。 需要此步驟。

  5. 呼叫 get_Errors 並檢查擷取的錯誤集合,以找出合併衝突或其他錯誤。 擷取是非破壞性的。 重複讀取呼叫 get_Errors,即可擷取錯誤集合的多個實例。 您需要根據情況自行解決任何錯誤。

  6. 使用 Connect,將合併模組的元件與已經或將會合併到安裝資料庫中的任何其他功能產生關聯。 呼叫這個方法之前,功能必須已經存在。 只有當您有其他功能時,才需要此步驟,如需詳細資訊,請參閱 將合併模組連線至多個功能

  7. 如有必要,請執行下列一或多個動作,從模組擷取來源檔案。

    若要從內嵌 .cab 檔案擷取檔案,然後複製到指定的目錄中,請使用 ExtractFilesExtractFilesEx。 請注意,ExtractFilesEx 需要 Mergemod.dll 2.0 版 或更新版本。

    若要從內嵌 .cab 檔案擷取檔案,然後儲存在指定的檔案中,請使用 ExtractCAB

    若要從模組擷取檔案,然後在合併之後複製到磁碟上的來源映像,請使用 CreateSourceImage。 請注意,CreateSourceImage 僅適用於 Mergemod.dll 2.0 版或更新版本。

  8. 使用 CloseModule關閉目前的開啟合併模組。 需要此步驟。

  9. 使用 CloseDatabase關閉目前已開啟的安裝資料庫。 需要此步驟。 關閉資料庫會清除所有相依性資訊,但不會影響任何尚未擷取的錯誤。

  10. 關閉目前的記錄檔使用 CloseLog。 如果您已開啟記錄檔,則需要此步驟。

使用 Mergemod.dll將模組合併至資料庫之後,必須更新 媒體數據表,以描述所需的來源影像配置。 Mergemod.dll 所提供的合併程式不會更新媒體數據表,因為合併模組的取用者可以選取各種方式來配置來源影像。