共用方式為


加入自訂的必要條件

更新:2007 年 11 月

啟動載入器 (Bootstrapper) 是泛型安裝程式,您可以設定此程式,啟動載入幾乎任何封裝成 Windows Installer 檔案或封裝成可執行程式的可轉散發套件。透過一組簡單的 XML 資訊清單,進行程式設計,這個資訊清單指定所有必要的中繼資料 (Metadata),讓啟動載入器管理元件的安裝。啟動載入器不指示應用程式必須使用的安裝程式技術 (Windows Installer 或 ClickOnce)。

當使用者啟動 Setup.exe 時,它會先偵測所有必要條件是否已經安裝。如果遺漏任何必要條件,啟動載入器會顯示安裝對話方塊,列出這些元件,並顯示其授權合約。否則,如果偵測到所有必要條件,啟動載入器就會啟動應用程式安裝程式。

一旦使用者接受合約,下載和安裝流程便會開始。當所有必要條件皆已安裝,啟動載入器就會啟動應用程式本身的安裝流程。

建立自訂套件

在一些情況下,您並不需要建立自己的可轉散發套件。通常,只有為了將檔案安裝至 GAC、執行全域註冊,或組成 Windows 服務的共用元件或系統元件,才需要建立套件。

您應該詢問控制項提供者,可轉散發檔案是否可以隨附於應用程式。如果簡單的複製作業即可轉散發必要條件元件 (例如,如果它沒有相依性),您就不需要建立套件。您只需要確定檔案包含在安裝程式中,或是設定為 [複製到本機] (在 [屬性檢視] 中的檔案 [Copy] 屬性應該設定為 [True])。

您也應該判斷是否必須要使用安裝程式。如果需要,請使用啟動載入器套件。

若要建立新元件套件,您必須提供:

  • 可轉散發元件,格式為 EXE 或 MSI 檔案。

  • 產品資訊清單 (product.xml),包含套件的語言中性中繼資料。這包含可轉散發元件所有當地語系化版本通用的中繼資料。

  • 套件資訊清單 (package.xml),包含語言特定的中繼資料;通常包含當地語系化的錯誤訊息。每個元件的當地語系化版本至少必須各有一個套件資訊清單。

您必須手動建立資訊清單檔案,而且這些檔案所包含的中繼資料 (Metadata) 必須符合特定的結構描述 (如 Windows Software Development Kit (SDK) 中所含的套件結構描述項目所述)。如需結構描述的參考資訊,請參閱產品和封裝結構描述參考。在 Visual Studio 中整合的安裝產生器,於建置時間會驗證資訊清單檔案。

您可以使用 DependsOnProduct 結構描述項目,指定這些資訊清單中之套件間的相依性。

然後,您必須將產品和套件資訊清單檔案,以及可轉散發檔案,一起複製到 Visual Studio 保留給可轉散發套件的特殊資料夾:

\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages

若要撰寫安裝程式,將可轉散發元件及其資訊清單複製到這個資料夾,您可以從下列登錄機碼的 [路徑] 值,以程式設計方式決定 Bootstrapper 資料夾的位置:

HKLM\Software\Microsoft\GenericBootstrapper\3.5

每個可轉散發元件隨即出現在套件目錄底下,它自己的子目錄中。然後,產品資訊清單和可轉散發檔案就會放入這個子目錄中。元件的當地語系化版本會和套件資訊清單一起放在其他子目錄 (這些子目錄依照「文化特性名稱」命名,請參閱 CultureInfo 中的表格)。

這些檔案複製到 Bootstrapper 資料夾之後,會自動出現在 Visual Studio 必要條件對話方塊中,開發人員即可核取方塊選取它們。

如需使用啟動載入器設定安裝的詳細資訊,請參閱 MSDN 文件:使用 Visual Studio 2005 Bootstrapper 啟動安裝

將啟動載入器可轉散發套件與應用程式安裝分開放置

依照規則,您應該將啟動載入器可轉散發套件的任何元件,與使用這些元件的應用程式分開放置。例如,假設名稱為 Acme.DataWidgets.msi 的啟動載入器套件包含元件 Acme.DataWidgets.dll。在開發時間,Acme.DataWidgets.dll 不應該出現在專案的 bindir 目錄,也不應該部署在應用程式的安裝程式套件中。

因此,我們建議您最好使用相同的核心啟動載入器可轉散發套件安裝程式,將啟動載入器元件安裝在開發電腦上的 GAC。這樣會防止在開發時間將啟動載入器元件複製到專案的 bindir 目錄。此外,我們建議您定義 RedistList 檔案,描述啟動載入器可轉散發套件的所有組件。這樣會防止將啟動載入器元件包含在應用程式部署專案中。您只需要將 RedistList 檔案安裝在開發人員電腦上。

若要這麼做,請在 .NET Framework 目錄 (\WINDOWS\Microsoft.NET\Framework) 底下的 RedistList 資料夾,建立可轉散發清單。

可轉散發清單是 XML 檔案,您應該使用下列格式予以命名:company_name + component_name + RedistList.xml。例如,如果元件稱為 "Datawidgets",由 "Acme" 製作,請使用 Acme.DataWidgets.RedistList.xml。以下是可能的可轉散發清單內容範例:

<?xml version="1.0" encoding="UTF-8"?>
<FileList Redist="Acme.DataWidgets" >
<File AssemblyName="Acme.DataGrid" Version="1.0.0.0" PublicKeyToken="b03f5f7f11d50a3a" Culture="neutral" ProcessorArchitecture="MSIL" InGAC="true" />
</FileList>

將套件加入至必要條件對話方塊

必要條件對話方塊讓您能夠選取應用程式在安裝前所需的元件。Visual Studio 包含多個標準必要條件。不過,您也可以將其他 Microsoft 或協力廠商元件當做必要條件加入。若要這麼做,您必須如先前所述的,編輯產品和套件資訊清單。

在 [必要條件] 對話方塊中,[選擇要安裝的必要條件] 清單會顯示可安裝的必要條件套件。清單上套件順序是根據資訊清單中指定的相依性,並且這個順序指定安裝套件的順序。

將泛型套件加入至啟動載入器之後,它就會出現在 [必要條件] 對話方塊中,當做 [MyPackage]。Visual Studio 不會自動選擇要安裝的套件。

對於 ClickOnce 專案,Visual Studio 建議所有專案類型都包含 .NET Framework,所以在 [選擇要安裝的必要條件] 中,預設選取 [.NET Framework] 核取方塊。

根據預設,對於 Windows Installer 專案,如果目前專案是安裝或 Web 安裝專案,便會選取 [.NET Framework] 核取方塊。如果在建置時間沒有選取 .NET Framework 或 Windows Installer 套件,會發出建置警告。

請參閱

工作

HOW TO:使用 ClickOnce 應用程式安裝必要條件

概念

部署必要條件 (Visual Studio)

參考

必要條件對話方塊

產品和封裝結構描述參考

其他資源

https://msdn.microsoft.com/msdnmag/issues/04/10/Bootstrapper/