自訂 Windows Installer 套件
Visual Studio 中的部署工具可用來控制安裝期間使用者看到的使用者介面 (UI)。 您可以自訂安裝 UI,向使用者顯示資訊,或者從使用者收集資訊。
您也可以使用合併模組和自訂動作來自訂安裝程式套件。 合併模組可以傳遞共用元件,而自訂動作則會在安裝結束時執行程式碼,以執行無法在安裝期間處理的動作。
安裝使用者介面
[使用者介面編輯器] 可指定和自訂顯示的對話方塊。 各個使用者介面對話方塊,代表 [安裝精靈] 中的不同頁面,並會於安裝時顯示。
[使用者介面編輯器] 中有多個可以處理一般情節的預先定義對話方塊,例如介紹精靈的目的 ([歡迎] 對話方塊)、讓使用者能夠指定安裝目錄 ([安裝資料夾] 對話方塊),或者顯示安裝進度 ([進度] 對話方塊)。 此外,多個自訂對話方塊讓您能使用核取方塊、選項按鈕和文字方塊來顯示選項或收集資訊。 如需詳細資訊,請參閱 HOW TO:在使用者介面編輯器中新增及移除安裝對話方塊。
注意事項 |
---|
Visual Studio 安裝和部署專案不支援您自行建置的自訂對話方塊或其他使用者介面項目。 請參閱安裝對話方塊的限制。 |
每個使用者介面對話方塊都具有可控制外觀的屬性。 自訂對話方塊包含可於安裝時進行評估的屬性,以便使用條件變更安裝。 如需詳細資訊,請參閱使用者介面編輯器的屬性。
合併模組
合併模組中包含元件 (例如 .dll) 以及任何相關檔案、資源、登錄項目和安裝邏輯。 您無法直接安裝合併模組, 而是將模組合併至安裝程式,以提供元件功能給應用程式。
合併模組建議
合併模組可能難以維修及更新。 將合併模組包含在安裝專案中的開發人員,在未與合併模組擁有者互動的情況下無法傳遞修正。 此外,合併的擁有者無法直接傳送更新給使用者電腦。
替代方案是,考慮以可鏈結至安裝程式的 Windows Installer 來提供技術。 如需詳細資訊,請參閱應用程式部署必要條件。
可重定目標的合併模組
依據預設,合併模組中的檔案會安裝到模組擁有者指定的資料夾位置。 有時您可能想讓合併模組使用者能夠決定檔案的安裝位置。 例如,如果有多種應用程式使用合併模組中的組件,合併模組使用者可以選擇將它安裝在全域組件快取中,否則使用者可以選擇將組件安裝在應用程式目錄中。
只要將檔案放在 [檔案系統編輯器] 的 [模組可重定目標] 資料夾中,合併模組使用者就能將檔案目標重定到別的位置。 最後的合併模組加入至其他部署專案後,專案作者即可藉由設定合併模組公開的 Module Retargetable Folder 屬性,以選擇位置。 [模組可重定目標資料夾] 屬性是動態屬性。 當您在 [方案總管] 中選取合併模組時,它會出現在 [屬性] 視窗的 [KeyOutput] 節點下的 [(MergeModuleProperties)] 節點下。
注意事項 |
---|
當您變更 [檔案系統編輯器] 中的 [模組可重定目標] 資料夾名稱時,屬性名稱也會跟著變更。 直到建置合併模組後,[屬性] 視窗才會顯示這個屬性。 |
自訂動作
自訂動作在安裝結束時會執行程式碼 (例如 .dll、.exe 或組件),以執行無法在安裝期間處理的動作。 例如,如果您想要在安裝期間於目標電腦上建立本機資料庫,可建立可執行檔,以便建立和設定資料庫,然後加入該可執行檔,做為部署專案中的自訂動作。 如需詳細資訊,請參閱逐步解說:使用自訂動作在安裝期間建立資料庫。
您可以使用 Visual Studio 中的 [自訂動作編輯器],在部署專案中加入自訂動作及設定其屬性。 部署專案可包含多重自訂動作。 如需詳細資訊,請參閱 HOW TO:在自訂動作編輯器中新增及移除自訂動作。
自訂動作是在安裝完成後才執行,因此無法存取用來控制安裝的屬性。 如果您需要從安裝程式傳送資訊到自訂動作,可藉由設定 CustomActionData 屬性來完成。 如需詳細資訊,請參閱逐步解說:使用自訂動作在安裝時顯示訊息。
警告
如果自訂動作失敗,則會回復整個安裝程序。
此外,您可以使用 Condition 屬性,將條件置於任何自訂動作上。 這樣可讓您依據安裝時目標電腦上已存在的條件,執行不同的自訂動作。 例如,您可依目標電腦上的作業系統版本,來執行不同的自訂動作。 如需詳細資訊,請參閱 Condition 屬性。
自訂動作建議
您可以使用自訂動作來建立靈活的安裝程式套件,但是各式各樣的使用者電腦和組態可能造成問題。 您應該開發實作 Install、Uninstall、Rollback 和 Commit 方法的自訂動作。 此外,請確認自訂動作可以支援下列情節:修復、降低、產品升級、產品降級、作業系統升級、作業系統降級、服務/修補,以及參考計數。
如需自訂動作方針的詳細資訊,請參閱 Windows Installer 之道,第二部分中的規則 25 (英文)。
條件式部署
Visual Studio 部署中最有價值的功能之一,就是設定安裝條件的能力,可讓您自訂應用程式的安裝方式。 您可以使用條件式部署,以作業系統版本為基礎,安裝不同的檔案;或者依現有索引鍵值為基礎,自訂登錄設定;或者甚至在相依應用程式還無法安裝到目標電腦上時中斷安裝。
Visual Studio 中的部署工具會以兩種方式支援條件式部署:透過啟動條件和透過 Condition 屬性。
啟動條件
啟動條件可用來評估目標電腦上的條件,並可於不滿足條件時中斷安裝。 您可以將啟動條件設定為檢查作業系統版本、現有檔案、登錄值、Windows Installer 元件、Common Language Runtime 以及網際網路資訊服務。 啟動條件可以在 [啟動條件編輯器] 中指定。 如需詳細資訊,請參閱部署中的啟動條件管理。
Condition 屬性
檔案、資料夾、登錄項目、自訂動作或啟動條件的 Condition 屬性可用來評估 Windows Installer 所公開的屬性或安裝程式中其他項目所設定的屬性。 自訂屬性可為 [啟動條件編輯器] 中的啟動條件、[檔案系統編輯器] 中的自訂資料夾,或者是 [使用者介面編輯器] 中的自訂對話方塊來指定。 在指定自訂屬性時,名稱必須包含大寫字元,同時不可與現有屬性或 Windows Installer 屬性名稱發生衝突。
條件可以評估安裝程式中其他項目公開的 Property 屬性 (例如,檔案搜尋的 Property 屬性),或者評估 Windows Installer 公開的屬性 (例如作業系統版本)。
如需詳細資訊,請參閱 Condition 屬性。
條件的布林運算子
多重屬性可使用 Boolean 運算子進行評估。 如需詳細資訊,請參閱 Windows Installer 條件陳述式語法。