包檔案夾
安裝程式包含的組件,要么是內嵌的,要么可以從遠程存盤庫加載,在這兩種情況下,都需要為組件使用一種安裝程式可以讀取的檔案格式和結構,
包檔案夾結構
將所有組件放在相同的根檔案夾中,即包檔案夾,該檔案夾的名稱充當類似于域的識別符號,用于標識所有組件,例如,com.vendor.root
在根檔案夾中,創建名為data和meta的子檔案夾,
包檔案夾結構如下所示:
-packages
- com.vendor.root
- data
- meta
- com.vendor.root.component1
- data
- meta
- com.vendor.root.component1.subcomponent1
- data
- meta
- com.vendor.root.component2
- data
- meta
元檔案夾
元檔案夾包含多個檔案,用于指定部署和安裝程序的設定,安裝程式不提取這些檔案,該檔案夾必須至少包含一個包資訊檔案,以及您在包資訊檔案中參考到的所有檔案,例如腳本,用戶界面檔案和翻譯檔案,
包資訊檔案語法
package.xml檔案是組件的主要資訊來源,以下是示例:
<?xml version="1.0"?>
<Package>
<DisplayName>QtGui</DisplayName>
<Description>Qt gui libraries</Description>
<Description xml:lang="de_de">Qt GUI Bibliotheken</Description>
<Version>1.2.3</Version>
<ReleaseDate>2009-04-23</ReleaseDate>
<Name>com.vendor.root.component2</Name>
<Dependencies>com.vendor.root.component1</Dependencies>
<Virtual>false</Virtual>
<Licenses>
<License name="License Agreement" file="license.txt" />
</Licenses>
<Script>installscript.qs</Script>
<UserInterfaces>
<UserInterface>specialpage.ui</UserInterface>
<UserInterface>errorpage.ui</UserInterface>
</UserInterfaces>
<Translations>
<Translation>sv_se.qm</Translation>
<Translation>de_de.qm</Translation>
</Translations>
<DownloadableArchives>component2.7z, component2a.7z</DownloadableArchives>
<AutoDependOn>com.vendor.root.component3</AutoDependOn>
<SortingPriority>123</SortingPriority>
<UpdateText>This changed compared to the last release</UpdateText>
<Default>false</Default>
<ForcedInstallation>false</ForcedInstallation>
<Essential>false</Essential>
<Replaces>com.vendor.root.component2old</Replaces>
</Package>
包資訊檔案元素總結
| 元素 | 描述 |
|---|---|
| DisplayName | 組件的可讀名稱,強制項,可將組件名稱的翻譯指定為DisplayName的附加標簽,并將xml:lang屬性設定為正確的語言環境, |
| Description | 組件的可讀描述,強制項,可以參考DisplayName標簽類似地指定翻譯,如果找不到與語言環境匹配的本地化翻譯,并且存在未翻譯的版本,則將使用該版本,否則,將不會顯示該語言環境的描述,用戶可點擊的外部鏈接,例如組件的主頁,可以包括在組件描述中,通過指定如下URL地址:{external-link}='https://www.qt.io/', 該URL必須有效,并且包含所需資源的完整路徑, |
| Version | 組件版本的格式:[0-9]+((\.|-)[0-9]+)*,例如1-1;1.2-2; 3.4.7,強制項,如果一個包需要顯示子包的版本號而不是它自己的版本號(由于子包的分組),則可以使用需要繼承該版本號的包名稱,來指定InheritVersionFrom屬性, |
| ReleaseDate | 組件版本發布的日期,強制項, |
| Name | 組件的類域標識,強制項, |
| Dependencies | 逗號分隔的組件識別符號串列,此組件的依賴項,可選的,你可以指定版本號,用破折號(-)分隔,您可以在版本號前使用比較運算子(=,>,<,>=或<=),請記住,必須使用字符參考"<"來轉義左尖括號(使用"<"代替"<",使用"<="代替"<="),可選項,有關更多資訊,請參見組件依賴章節, |
| AutoDependOn | 逗號分隔的組件識別符號串列,本組件自動依賴,僅當所有指定依賴滿足時,才安裝本組件,如果其中某個組件自動依賴于其他組件,則組件樹中該組件旁邊的復選框將不可見,復選框自動進行選擇,如果以前未安裝過本組件,則僅當串列中的所有組件都被選擇安裝時,才可選擇安裝本組件, 如果已經安裝了本組件,當串列中選擇了至少一個組件進行卸載時,則該組件也將被選擇進行卸載, 有關更多資訊,請參見組件依賴章節, |
| Virtual | 設定為true可以從安裝程式中隱藏該組件, 請注意,在根組件上設定此功能無效, |
| SortingPriority | 樹中組件的優先級, 該樹從最高優先級到最低優先級排序,最高優先級在頂部, |
| Licenses | 用戶將接受的許可協議串列,要添加多個許可證,請添加多個<License>子元素,每個都指定許可證名稱和檔案, 許可證檔案支持ASCII和UTF8檔案格式, 如果列出了此組件的翻譯,安裝程式還將查找翻譯后的許可證,它們需要與原始許可證檔案同名,但具有附加的語言環境識別符號,例如,如果許可證檔案名為license.txt,并指定了德語翻譯,則安裝程式還將包含license_de_de.txt檔案(在德語系統上安裝時顯示), |
| Script | 正在加載的腳本的檔案名,可選項,有關更多資訊,請參見添加操作章節, |
| UserInterfaces | 要加載的頁面串列, 要添加多個頁面,請添加多個<UserInterface>子元素,每個指定頁面的檔案名, 可選項,有關更多資訊,請參見添加頁面章節, |
| Translations | 要加載的翻譯檔案串列, 要添加多種語言變體,請指定多個<Translation>子元素,每個指定一種語言變體的檔案名,可選項,有關更多資訊,請參見翻譯頁面章節, |
| UpdateText | 描述,添加到組件描述中,如果這是對組件的更新,可選的, |
| Default | 可能的值為:true,false和script,設定為true,則預先選擇安裝程式中的組件,這僅對沒有可見子組件的組件有效, true和false會被直接評估,而script在運行時決議, 在此檔案中,添加腳本名,作為<Script>元素的一個值,有關示例腳本,請參見選擇默認內容章節, |
| Essential | 將包標記為必要的,用于強制重啟MaintenanceTool,如果某個必要組件有可用的更新,則包管理器將保持禁用狀態,直到該組件被更新為止,運行更新程式時,將自動安裝新引入的必要組件, |
| ForcedInstallation | 確定必須始終安裝該包,用戶無法在安裝程式中取消選擇, |
| Replaces | 要替換的逗號分隔的組件串列,可選項, |
| DownloadableArchives | 列出供在線安裝程式下載的資料檔案(用逗號分隔),如果組件內部有一些資料,并且package.xml和/或腳本沒有DownloadableArchives值,則repogen工具會自動注冊找到的資料, |
| RequiresAdminRights | 設定為true,如果需要使用提升的權限來安裝包,可選項, |
| Checkable | 設定為false,如果要隱藏專案的復選框,當僅應選擇幾個子組件而不是全部時,這很有用,可選項, |
| ExpandedByDefault | 設定為true,如果要在樹結構中默認擴展此項,可選項, |
組件依賴
組件可以依賴一個或多個真實或者虛擬的組件,依賴通過組件標識或者可選的組件版本來定義,使用破折號(-)將版本號與識別符號分開,
可以使用比較運算子(=,>,、<(<),>=或<=(<=))作為版本號的前綴,以指示包的版本號,并與所需版本進行比較,并且必須等于、大于、小于、大于等于依賴項的版本號,如果沒有給出比較運算子,則默認為=,
資料檔案夾
資料檔案夾包含安裝程式在安裝程序中要提取的內容,您必須將資料打包為.7zip存檔(.7z),您可以使用Qt Installer框架隨附的archivegen工具,也可以使用其他生成7zip存檔的工具,
原創造福大家,共享改變世界
獻出一片愛心,溫暖作者心靈
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/5176.html
標籤:其他
