溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Inno Setup 3 :語法解析(二)

發(fā)布時間:2020-02-25 04:03:21 來源:網(wǎng)絡(luò) 閱讀:1496 作者:006玩命 欄目:軟件技術(shù)

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

[Setup]

??[Setup]段包含用于安裝程序和卸載程序的全局設(shè)置。某些提示對于你創(chuàng)建的任何安裝程序都是必須的。示例如下:

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

??按默認,指令值的所有首位或末位無顯示字符將被分離。這可以通過質(zhì)控的值包含在雙引號 "" 中避免。
??[Setup]段中可以包含編譯器相關(guān)指令(如:SourceDir、OutoutDir、OutputBaseFileName等)和安裝程序相關(guān)指令(如:AppId、AppName、AppVerName、DefaultGroupName等)。
??其中,[Setup]段必須包含的指令如下:

  • AppName
  • AppVerName
  • DefaultDirName

[Types]

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

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

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

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

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

    Description: "完全安裝"
  • Flags
    這個參數(shù)是額外選項是設(shè)置,多個選項可以使用空格隔開。支持羨慕的選項:
    ?iscustom :
    ?告訴安裝程序這個類型是自定義類型。用戶在安裝期間手動改變了組件選擇,安裝程序會將安裝類型設(shè)置為自定義類型。注意,如果未定義自定義類型,安裝程序?qū)⒅辉试S用戶選擇一個安裝類型,并且不能手動選擇/取消選擇組件。僅一種類型可以包含該標(biāo)記。示例如下:

    Flags: iscustom

    [Components]

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

    [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"類型時安裝。
    下列是所支持的參數(shù)列表:

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

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

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

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

    [Tasks]

      [Tasks]段是可選的,它定義安裝程序執(zhí)行安裝期間由用戶定制的任務(wù)。這些任務(wù)以選項框和單選項形式出現(xiàn)在附加任務(wù)向?qū)ы撝小?br/>  該段本身是不做任何事情的,它需要“鏈接”到其他安裝條目。示例如下:

    [Tasks]
    Name: desktopicon; Description: "創(chuàng)建桌面快捷方式(&D)"; GroupDescription: "添加快捷方式:"; components: main
    Name: Desktopicon\common; Description: "對于所有用戶"; GroupDescription: "添加快捷方式:"; Components: main; Flags: exclusive
    Name: desktopicon\user; Description: "僅對當(dāng)前用戶"; GroupDescription: "添加快捷方式: quicklaunchicon; Description: "創(chuàng)建快速啟動欄快捷方式(&Q)"; GroupDescription: "添加快捷方式:"; Components: main; Flags: unchecked
    Name: associate; Description: "文件關(guān)聯(lián)(&A)"; GroupDescription: "其他任務(wù)"; Flags: unchecked

    下面是所支持的參數(shù)列表:

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

    Name: "desktopicon"
    • Description(必需的)
        任務(wù)的描述,可包含常量。該描述用于在安裝期間進行顯示。示例如下:

      Description: "創(chuàng)建桌面快捷方式(&D)"
    • GroupDescription
        任務(wù)組的描述,可包含常量。擁有相同描述的連續(xù)任務(wù)將會被分配到同一個帶文字標(biāo)簽的組中。該文字標(biāo)簽用于顯示任務(wù)組的描述信息。示例如下:

      GroupDescription: "附加圖標(biāo)"
    • Components
      該任務(wù)所屬的組件列表,列表中組件用空格隔開的。當(dāng)用戶選擇一列表中組件時,該任務(wù)將被顯示;不帶組件參數(shù)的任務(wù)總是被顯示。示例如下:

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

    [Dirs]

    [Files]

    [Icons]

    [INI]

    [InstallDelete]

    [Languages]

    [Messages]

    [CustomMessages]

    [LangOptions]

    [Registry]

    [Run]

    [UninstallDelete]

    [UninstallRun]

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI