在 Windows XP 上安裝 Win32 元件以私用應用程式
本主題中的程式會識別如何建立 Windows Installer 套件來安裝 Win32 元件。 套件會將元件和應用程式指令清單檔案安裝到應用程式所使用的撰寫資料夾中。 應用程式宣告會指定應用程式對私用元件的相依性。 安裝套件之後,私有組件僅供該應用程式專用。 在應用程式指令清單中指定的元件相依性會覆寫全域元件指令清單檔中指定的任何其他元件相依性,這適用於此應用程式。
在您繼續之前,最好先瞭解如何撰寫不含元件的 Windows Installer 套件。 如需詳細資訊,請參閱 安裝範例。
在 Windows XP 上安裝私用元件
- 定義 Windows Installer 元件,其中包含 Win32 元件和應用程式指令清單檔。 此元件可以包含應該一律隨彙編一起安裝或移除的其他資源。 此程式的其餘步驟說明如何撰寫安裝資料庫以安裝此元件。
- 針對包含 Win32 元件和應用程式指令清單檔的元件,將數據列新增至 元件數據表。 為此元件代碼輸入有效的 Windows Installer GUID。 如需詳細資訊,請參閱 變更元件程式代碼 和 如果元件規則中斷會發生什麼情況?
- 安裝程式會將組件資訊檔案複製至包含在 MsiAssembly 資料表的 [File_Application] 欄位中指定的檔案的資料夾中。
- 將一行新增至 FeatureComponents 表格, 以連結元件與 Windows Installer 功能。 如需詳細資訊,請參閱 元件和功能。 Windows Installer 功能應該是使用者可以辨識的應用程式功能。 當使用者選取此功能,或應用程式故障時,就會啟動組件。 如果元件定義其他功能,請將額外的數據列新增至功能屬性的 Feature 數據表。 如果撰寫合併模組,則不需要此步驟。
- 對於並存元件,系結和啟用資訊,例如 COM 類別、介面和類型連結庫,會儲存在指令清單檔中,而不是登錄。 私人元件會將此資訊儲存在元件指令清單中。 在支援並存元件的系統上,安裝程式會略過在 Extension 資料表、Verb 資料表、TypeLib 資料表、MIME 資料表、Class 資料表、ProgId 資料表,以及 AppId 資料表所輸入的任何元件資訊。 系結和啟用資訊可以輸入數據表,供不支援並存元件共用的系統使用。
- 並存安裝不會將組件全域註冊。 如果 SelfReg 資料表中輸入任何自我註冊資訊,安裝程式會略過自我註冊元件,。 自我註冊資訊可以輸入 SelfReg 數據表,以在不支援並存元件共用的系統上自我註冊元件。
- 請將任何其他登錄資訊(不包含系結、啟用和自我註冊元件)新增至 Registry 表格、RemoveRegistry 表格,以及 Environment 表格。
- 安裝程式會在支援共存共用的作業系統上略過此元件的 IsolatedComponent 資料表。 如果您希望組件在支持本機檔案的系統上保持私人,請在此表格中輸入資訊。
- 在 MsiAssembly 數據表 中為包含 Win32 組件的元件新增一列。 在 MsiAssembly 數據表的 [屬性] 欄位中輸入值 1,以指定這是 Win32 元件。 在 MsiAssembly 資料表的 [File_Application] 字段中輸入私用元件的檔案密鑰,。 將 MsiPublishAssemblies 動作 新增至 InstallExecuteSequence 表 或 AdvtExecuteSequence 表。 將 MsiUnpublishAssemblies 動作 新增至 InstallExecuteSequence 資料表。 將用於組件和清單檔案的資料夾創建到 Directory 資料表。 此資料夾應位於應用程式的根目錄中,並包含 MsiAssembly 資料表File_Application 字段中指定的檔案。 在安裝應用程式期間,安裝程式會解析此資料夾路徑的 Directory 資料表。 如需詳細資訊,請參閱 目錄表的使用方式。
- 將數據列新增至元件的 MsiAssemblyName 數據表。 在清單的 assemblyIdentity 區段中,為指定的每個名稱和值組新增一個資料列。 如需詳細資訊,請參閱 MsiAssemblyName 資料表。