將元件新增至封裝
Windows Installer 開發人員可以使用本主題中的指導方針來撰寫包含元件的 Windows Installer 套件。
下列指導方針適用于 Microsoft .NET Framework通用語言執行平臺使用的 Win32 元件和元件。
- Windows Installer 元件不應包含多個元件。
- 元件中的所有檔案都應該位於單一元件中。
- 每個包含元件的元件都應該有 MsiAssembly 資料表中的專案。
- 每個元件的強式組件快取名稱應該撰寫到 MsiAssemblyName 資料表中。
- 當您為元件註冊 COM Interop 時,請使用 登錄 資料表,而不是 Class 資料表。
- 具有相同強式名稱的元件是相同的元件。 當不同的應用程式安裝相同的元件時,包含元件的元件應該在其 Component 資料表中使用相同的 ComponentId 值。
注意
產品公告會識別可由不同應用程式安裝及使用的元件。 產品廣告不會識別私人元件。
新增 Win32 元件
當您包含 Win32 元件時,請使用下列指導方針:
- 包含 Win32 元件的 元件之元件 資料表中的 KeyPath 值不應為 Null。
- 包含 Win32 原則元件之元件的 Component 資料表中的 KeyPath 值應該是資訊清單檔。
- 包含 Win32 元件的 元件之 Component 資料表中的 KeyPath 值,該元件不是原則元件,不應該是資訊清單檔或目錄檔案。 它應該是元件中的不同檔案。
- 針對 Win32 元件資訊清單的assemblyIdentity區段中所列的每個名稱和值組,將資料列新增至MsiAssemblyName資料表。
新增與.NET Framework搭配使用的元件
當您包含.NET Framework通用語言執行平臺所使用的元件時,請使用下列指導方針。
- 包含元件之元件的 Component 資料表中的 KeyPath 值不應為 Null。
- 當您將 Common Language Runtime 使用的元件安裝到全域組件快取時,MsiAssembly 資料表的 [File_Application] 資料行中的值必須是 Null。
- 針對元件強式名稱的每個屬性,將資料列新增至 MsiAssemblyName 資料表。 所有元件都必須具有 MsiAssemblyName 資料表中指定的 Name、Version 和 Culture 屬性。 通用群組件需要 publicKeyToken 屬性。 下表是通用程式集的 MsiAssemblyName 資料表範例,可供 Common Language Runtime 使用。
元件 | 名稱 | 值 |
---|---|---|
ComponentA | 名稱 | simple |
ComponentA | version | 1.0.0.0 |
ComponentA | 文化特性 | neutral |
ComponentA | publicKeyToken | 9d1ec8380f483f5a |