指定自我註冊的順序
請注意,您無法使用 SelfRegModules 和 SelfUnRegModules 動作來指定安裝程式註冊或取消註冊自我註冊 DLL 的順序。 這些動作會註冊 SelfReg 資料表中列出的所有模組,。 安裝程式不會自行註冊 .exe 檔案。
若要指定安裝程式註冊或取消註冊模組的順序,您必須針對每個模組使用兩個 自定義動作。 一個自定義動作是用於 DllRegisterServer,另一個是用於 DllUnregisterServer。 然後,這些自定義動作必須在 InstallExecuteSequence 數據表中撰寫, 順序中 DLL 要註冊或取消註冊的位置。
下列範例說明如何撰寫資料庫,以排程動作順序中特定時間點的 DLL 自我註冊。
檔案資料表 (部分)
檔 | 元件_ | 檔名 | 序列 |
---|---|---|---|
mydll | myComponent | Mydll.dll | 13 |
元件資料表 (部分)
元件 | ComponentId | 目錄_ | KeyPath (關鍵路徑) |
---|---|---|---|
myComponent | {GUID} | 我的資料夾 | mydll |
目錄 | 目錄_父目錄 | DefaultDir |
---|---|---|
TARGETDIR | SourceDir | |
我的資料夾 | TARGETDIR | myFolder|我的資料夾 |
行動 | 類型 | 來源 | 目標 |
---|---|---|---|
mydllREG | 3170 | 我的資料夾 | “[SystemFolder]msiexec” /y “[#mydll]” |
mydllUNREG | 3170 | myFolder | “[SystemFolder]msiexec” /z “[#mydll]” |
InstallExecuteSequence 資料表 (部分)
行動 | 條件 | 序列 |
---|---|---|
自動解除註冊模組 | 2200 | |
mydllUNREG | $myComponent=2 | 2201 |
刪除檔案 | 3500 | |
InstallFiles | 4000 | |
SelfRegModules | 6500 | |
mydllREG | $myComponent>2 | 6501 |