安裝程式是一般安裝程式,可設定為偵測及安裝可轉散發元件,例如 Windows Installer (.msi) 檔案和可執行程式。 安裝程式也稱為啟動載入器。 它會透過一組 XML 指令清單進行程式設計,以指定要管理元件的安裝元數據。 ClickOnce 的 必要條件 對話框中出現的每個可轉散發套件或前置條件都是啟動程式套件。 啟動載入器套件是一組目錄和檔案,其中包含描述應如何安裝必要條件的指令清單檔案。
引導程式會先偵測是否已安裝任何先決條件。 如果未安裝必要條件,引導程序首先會顯示許可協定。 其次,在終端使用者接受許可協議之後,安裝會開始進行必要條件。 否則,如果偵測到所有必要條件,啟動載入器只會啟動應用程式安裝程式。
建立自訂啟動載入器套件
您可以使用 Visual Studio 中的 XML 編輯器來產生啟動載入器指令清單。 若要查看建立啟動載入器套件的範例,請參閱 逐步解說:使用隱私權提示建立自定義啟動載入器。
若要建立啟動載入器套件,您必須建立產品資訊清單,並且針對元件的每個當地語系版本,建立套件資訊清單。
產品清單 product.xml,包含套件的語言無關的中性元數據。 這包括所有本地化版本的可再發佈元件通用的中繼資料。 若要建立此檔案,請參閱 如何:建立產品指令清單。
套件指令清單 package.xml,包含語言特定的元數據;它通常包含本地化的錯誤訊息。 元件必須至少為每個當地語系化版本具有一個套件清單。 若要建立此檔案,請參閱 如何:建立套件指令清單。
建立這些檔案之後,請將產品指令清單檔案放入名為 的自定義啟動載入器資料夾中。 套件指令清單檔案將放入依地區設定命名的資料夾。 例如,如果套件指令清單檔案是用於英文轉散發,請將檔案放入名為 en 的資料夾。 針對每個語言區域重複此過程,例如日語的 ja 和德語的 de。 最終的自定義啟動載入器套件可能會有下列資料夾結構。
CustomBootstrapperPackage
product.xml
CustomBootstrapper.msi
de
eula.rtf
package.xml
en
eula.rtf
package.xml
ja
eula.rtf
package.xml
接下來,將可再發佈的檔案複製到安裝啟動程式資料夾位置。 如需詳細資訊,請參閱 如何:建立本地化的啟動載入器套件。
*\Program Files (x86)\Microsoft SDKs\ClickOnce Bootstrapper\Packages*
或
*<VS Install Path>\MSBuild\Microsoft\VisualStudio\BootstrapperPackages*
備註
上述 Visual Studio 安裝路徑下所列的路徑從 Visual Studio 2019 Update 7 版本開始運作。
您也可以從下列登入機碼中的 Path 值找到啟動載入器資料夾位置:
*HKLM\Software\Microsoft\GenericBootstrapper*
在 64 位系統上,使用下列登錄機碼:
*HKLM\Software\Wow6432Node\Microsoft\GenericBootstrapper*
每個可轉散發元件都會出現在套件目錄下自己的子資料夾中。 產品清單和可轉散發檔案必須放入這個子資料夾中。 元件和套件指令清單的當地語系化版本必須放入以文化特性名稱命名的子資料夾中。
將這些檔案複製到啟動載入器資料夾之後,啟動載入器套件會自動出現在 [Visual Studio 必要條件 ] 對話框中。 如果您的自定義啟動載入器套件未出現,請關閉 ,然後重新開啟 [ 必要條件] 對話框。 如需詳細資訊,請參閱 必要條件對話方塊。
下表顯示引導程序自動填入的屬性。
| 房產 | 說明 |
|---|---|
| 應用程式名稱 | 應用程式的名稱。 |
| 處理器架構 | 執行檔目標平台的處理器和每字位元數。 包括下列值: -英特爾 - IA64 - AMD64 |
| VersionNT | Windows 作業系統的版本號碼。 版本的語法為 Major.Minor.ServicePack。 |
| VersionMSI | 安裝期間要執行的 Windows Installer 元件版本 (msi.dll)。 |
| AdminUser | 如果使用者具有系統管理員許可權,則會設定此屬性。 值為 true 或 false。 |
| 安裝模式 | 安裝模式會指出元件必須從何處安裝。 包括下列值: - HomeSite - 必要的先決條件從廠商的網站上安裝。 - SpecificSite - 必要條件會從您選取的位置安裝。 - SameSite - 必要條件是從與應用程式相同的位置安裝。 |
將可轉散發套件與應用程式安裝分開
您可以防止在安裝程式專案中部署可轉散發檔案。 若要這樣做,請在 .NET Framework 目錄中的 RedistList 資料夾中建立可轉散發清單:
%ProgramFiles%\Microsoft.NET\RedistList
可轉散發清單是 XML 檔案,您應該使用下列格式命名: <公司名稱>。<元件名稱>.RedistList.xml。 例如,如果元件稱為 Acme 所建立的 DataWidgets,請使用 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>