1. 程式人生 > >Inno Setup 3 :語法解析(二)

Inno Setup 3 :語法解析(二)

nes 多個 appid war 層次 需要 ace lena disk

  接上回。安裝腳本段用於解析腳本中各個段的含義及使用方法。其包括[Setup]段、[Files]段、[Run]段等共17個字段,下面逐一進行分析。

[Setup]

  [Setup]段包含用於安裝程序和卸載程序的全局設置。某些提示對於你創建的任何安裝程序都是必須的。示例如下:

[Setup]
AppName=My Program
AppVerName=My Program Version 3.1
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

  按默認,指令值的所有首位或末位無顯示字符將被分離。這可以通過質控的值包含在雙引號 "" 中避免。

  [Setup]段中可以包含編譯器相關指令(如:SourceDir、OutoutDir、OutputBaseFileName等)和安裝程序相關指令(如:AppId、AppName、AppVerName、DefaultGroupName等)。
  其中,[Setup]段必須包含的指令如下:

  • AppName
  • AppVerName
  • DefaultDirName

[Types]

  [Types]段是可選的,用來定義安裝程序在選擇組件頁面時可供選擇的所有安裝類型。如果你在[Components]段定義了組件,但沒有定義類型,在編譯時將創建一個默認的安裝類型設置。如果你正在使用默認(簡體中文)消息文件,這些類型等同於下面示例中的類型。[Types]段示例如下:

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

下列是[Types]段所有支持的參數列表:

  • Name(必需的)
    類型的內部名字。用於定義[Components]段中組件參數,告訴安裝程序組件屬於哪個類型。示例:

    Name: "full"
  • Description(必需的)
    類型的描述,可以包含常量。這個描述在安裝期間顯示。示例:

    Description: "完全安裝"
  • Flags
    這個參數是額外選項是設置,多個選項可以使用空格隔開。支持羨慕的選項:
     iscustom :
     告訴安裝程序這個類型是自定義類型。用戶在安裝期間手動改變了組件選擇,安裝程序會將安裝類型設置為自定義類型。註意,如果未定義自定義類型,安裝程序將只允許用戶選擇一個安裝類型,並且不能手動選擇/取消選擇組件。僅一種類型可以包含該標記。示例如下:

    Flags: iscustom

    [Components]

      [Components]段是可選的,它定義安裝程序向導的選擇組件頁面中顯示的所有組件,以便於用戶定制安裝類型。
      只用這一個組件不會做任何事情,它需要“鏈接”到其他安裝目錄。示例如下:

    [Components]
    Name: "main"; Description: "主文件"; Types: full compact custom; Flags: fixed
    Name: "help"; Description: "幫助文件"; Types: full
    Name: "help\english"; Description: "English"; Types: full
    Name: "help\chinese"; Description: "簡體中文"; Types: full

    該示例生成四個組件:"main"組件在最終用戶選擇一個名為"full"或"compact"的類型時安裝。帶有兩個子組件的"help"組件僅在用戶選擇"full"類型時安裝。
    下列是所支持的參數列表:

  • Name(必須的)
    組件的內部名稱。
    在組件名稱中的 \ 或 / 字符符合計數是調用組件的層次。任何在層次 1 或更高層次的組件是子組件。在子組件前列出的小於子組件層次的組件是上級組件。其他有相同上級組件的組件之間稱為同級組件。
    如果上級組件未選定,則不能選定它的子組件。如果所有的子組件均未選定,則上級組件也不能選定,除非Components參數引用上級組件或上級組件包含checkablealone標記。
    如果同級組件已經標有exclusive標記,則它們之中只有一個可選。示例如下:

    Name: "help"
  • Description(必須的)
    組件的描述,可以包含常量。這個描述用於在安裝期間顯示給用戶參考。示例如下:

    Description: "幫助文件"
  • Types
    用空格隔開所屬組件的類型列表。如果用戶從這個列表中選擇了一個類型,這個組件將被安裝。
    如果未使用fixed標記(見下文),這個列表中的任何自定義類型(使用iscustom標記的類型)均會被安裝程序忽略。示例如下:
    Types: full compact
  • ExtraDiskSpaceRequired
    這個組件所需要的額外磁盤空間,類似於[Setup]段中的ExtrDiskSpaceRequired。示例如下:

    ExtraDiskSpaceRequired: 0
  • Flags
    這個參數是額外選項設置。多個選項可以使用空格隔開。其支持下面的選項:
     checkblealone:
     指定當一個組件的所有子組件未被選中時,該組件可以被選中。默認的,如果沒有Components參數直接引用到該組件,所有未選中的子組件都將導致該組件被設置為未選中狀態。
     dontinheritcheck:
     指定當該組件被上級選中時,不影響組件選擇狀態。這不影響對頂層的組件,且該標記不能與exclusive標記一起使用。
     exclusive:
     告訴安裝程序該組件與其他擁有exclusive標記的組件是互斥的。
     fixed:
     告訴安裝程序在安裝流程中該組件不提供選擇項供用戶選擇。
     restart:
     告訴安裝程序若安裝該組件,則無論是否需要,都告訴用戶重啟電腦。(例如,[Files]段條目用了restartreplace標記),這有點像AlwaysRestart,但並不是每個組件都需如此。
     diableenouninstallwarning:
     如果這個組件在電腦上已安裝,則重建安裝時用戶取消安裝該組件,該標記告訴安裝程序不進行警告提示用戶將不卸載該組件。
     根據組件的復雜性,可使用[installDelete]段和該標記來自動卸載未選定的組件。
    示例如下:

    Flags: fixed

    [Tasks]

    [Dirs]

    [Files]

    [Icons]

    [INI]

    [InstallDelete]

    [Languages]

    [Messages]

    [CustomMessages]

    [LangOptions]

    [Registry]

    [Run]

    [UninstallDelete]

    [UninstallRun]

Inno Setup 3 :語法解析(二)