Windows Installer 基本概念

Windows Installer 會在使用者的電腦上安裝和解除安裝應用程式或軟體產品,並以稱為 Windows Installer 元件 (有時稱為 WIC 或只是元件) 的單元執行這些工作。 GUID 會識別每個 WIC,這是使用 Windows Installer 進行安裝的基本安裝和參考計數單位。

如需 Windows Installer 的完整文件,請參閱平台 SDK 主題 Windows Installer

撰寫 VSPackage

Windows Installer 使用安裝套件,其中包含 Windows Installer 需要安裝、解除安裝或修復產品以及執行安裝使用者介面 (UI) 所需的資訊。 每個安裝套件都包含 .msi 檔案,其中包含安裝資料庫、摘要資訊串流,以及安裝各個部分的資料流。 若要使用安裝程式,您必須撰寫安裝。 因為安裝程式會依照元件的概念來組織安裝作業,並將安裝的相關資訊儲存在關係資料庫中,因此撰寫安裝套件的程式通常需要下列步驟:

  1. 規劃您為安裝撰寫的內容,以支援您的版本設定和並存策略。

  2. 識別要向使用者呈現的功能。

  3. 將 VSPackage 和相依項組織成元件。

  4. 使用資訊填入安裝資料庫。

  5. 驗證安裝套件。

    本文件主要涉及程序的第一和第三個步驟。 在這些步驟中,您會將 VSPackage 功能組織成 WIC,讓您可以架構化版本控制和維護策略,以供 Visual Studio 後續版本之用。 其餘三個步驟會在平台 SDK 的 Windows Installer 文件中詳細說明。

關鍵字詞

以下是與 Windows Installer 技術相關的關鍵詞彙定義。

資源檔、登錄機碼、捷徑等可能安裝到電腦。 這些資源會以邏輯方式組織到 Windows Installer 元件中。

Windows Installer 元件 (WIC) 安裝的基本單元代表安裝並解除安裝為單元之相關資源的邏輯群組。 Windows Installer 元件是由唯一的元件識別碼或 GUID 識別。 此外,Windows Installer 會維護其在 WIC 層級的參考計數。 若要獲得最大的版本控制彈性,在指定的 WIC 中請不要包含超過一個主要資源,例如 DLL。 請注意,在您識別並填入 WIC 之後,請提供 GUID 並進行部署,您無法變更其組合。 如需詳細資訊,請參閱將應用程式組成元件

套件 (Redist 套件) 部署單位包含此檔案可能指向的.msi 檔案和外部來源檔案。 套件包含 Windows Installer 執行 UI 以及安裝或解除安裝應用程式所需的所有資訊。

.msi 檔案 COM 結構化儲存檔案,其中包含安裝應用程式所需的指示和資料。 每個套件至少包含一個 .msi 檔案。 .msi 檔案包含安裝程式資料庫、摘要資訊流,以及一或多個轉換和內部來源檔案。 要安裝的檔案可以壓縮到封包檔中,並儲存在 .msi 檔案中的串流中,也可以在來源媒體上的 .msi 檔案外部儲存、壓縮或解壓縮。 如需詳細資訊,請參閱 Windows Installer 檔案副檔名

Windows Installer 規則強制執行

兩組規則會透過安裝程式的元件來確定資源的部署。 Windows Installer 本身會維護一個規則集,而您應該將第二個集合強制執行為安裝程序的作者。

注意

只有在您執行 .msi 檔案的驗證時,才會強制執行 Windows Installer 規則。 雖然如此,系統會提醒您將這些規則視為最佳做法。 如需詳細資訊,請參閱驗證安裝資料庫套件驗證

安裝程式強制執行規則

  • 指定元件中的所有檔案都必須安裝到相同目錄中。 相反地,安裝至個別資料夾的檔案必須屬於各自不同的元件。

  • 每個元件只能有一個金鑰路徑。 金鑰路徑只是代表整個元件的檔案或登錄機碼。

元件提供者的責任

  • 後續版本中可能個別隨附的任何兩項資源,都應該存在於個別的元件中。 只有在確定這些資源永遠不會分開運送時,資源才應該分組到相同元件。 事實上,建議所有主要資源 (例如 DLL) 一律存在於個別的 WIC 中。 如需詳細資訊,請參閱定義安裝程式元件

  • 任何版本化資源都不應該隨附於一個以上的 WIC。