環境數據表
Environment 數據表是用來設定環境變數的值。
環境數據表具有下列數據行。
列 | 類型 | 鑰匙 | 空 |
---|---|---|---|
環境 | 識別碼 | Y | N |
名字 | 文字 | N | N |
價值 | 格式化 | N | Y |
元件_ | 識別碼 | N | N |
列
-
環境
-
這是數據表的主鍵,而且是非本地化的令牌。
-
名稱
-
此資料行是環境變數的可本地化名稱。 索引鍵值會根據下表中的字元前面加上名稱,來寫入或移除。 前置詞中使用的符號順序沒有任何作用。
前綴 描述 = 如果環境變數不存在,請建立環境變數,然後在安裝期間加以設定。 如果環境變數存在,請在安裝期間加以設定。 + 如果環境變數不存在,請建立環境變數,然後在安裝期間加以設定。 如果環境變數的值已經存在,這不會影響它。 - 拿掉元件時,請移除環境變數。 這個符號可以與任何前置詞結合。 ! 在安裝期間移除環境變數。 如果變數的名稱和值符合 Environment 資料表的 [名稱] 和 [值] 欄位中的專案,安裝程式只會在安裝期間移除環境變數。 如果您想要移除環境變數,不論其值為何,請使用 '!' 語法,並將 [值] 字段保留空白。 * 此前置詞會與 Windows 2000 搭配使用,以指出名稱參考系統環境變數。 如果沒有星號,安裝程式會將變數寫入用戶的環境。 這個符號可以與任何前置詞結合。 用於在每部電腦安裝 安裝內容中的套件, 應該將環境變數寫入電腦的環境,方法是在 [名稱] 資料列中包含 * 。 如需詳細資訊,請參閱。 =- 環境變數是在安裝時設定,並在卸載時移除。 這是一般的行為。 !- 在安裝或卸載期間移除環境變數。 =+ !+
!=這些不是有效的前置詞 如果數據表中的 [值] 字段包含 [~],則前置詞字元只會套用至字串的指定部分。 在 [值] 數據行一節中描述 [~] 的使用。
如果數據表的 [值] 字段空白,則會移除環境變數。 因此,在 [值] 字段中有空白,= 前置詞會在安裝時刪除環境變數,而 - 前置詞會刪除卸載時的任何目前值。
-
值
-
此資料列包含要設定為格式化字串的可當地語系化值。 請參閱 格式化。 如果此欄位保留空白,則會移除變數。 如果欄位是空白的,且 Name 欄位中的字串前面加上 - 符號,則只有在移除元件時,才會移除變數。
若要將值附加至現有變數的結尾,請在此欄位中的字串前面加上 Null 字元 [~] 和分隔符。 例如,如果分號是所選的分隔符:[~];值。
若要在現有變數前面加上值,請依分隔符和 Null 字元 [~] 在這個欄位中附加字串。 例如,如果分號是所選的分隔符:Value;[~] .
如果欄位中沒有 [~] ,字串代表要設定或刪除的整個值。
每個數據列只能包含一個值。 例如,專案 Value;值;[~] 是一個以上的值,因此不應該使用,因為它會導致無法預期的結果。 專案 Value;[~] 只是一個值。
如果 Name 前面加上 +,則 [~] 不得在 [值] 資料行中使用。 這是因為 “+” 和 “[~]” 的意義顯然互斥。
-
Component_
-
元件資料表第一個資料列的外部索引鍵。 此資料行會參考控制環境值安裝的元件。
言論
若要讓安裝程式設定環境變數,WriteEnvironmentStrings 巨集指令 和 RemoveEnvironmentStrings 巨集指令 必須列在 InstallExecuteSequence Table中。
請注意,執行 WriteEnvironmentStrings 巨集指令 或 RemoveEnvironmentStrings 巨集 指令時,不會變更安裝進行中的環境變數。 在 Windows 2000 上,此資訊會儲存在登錄中,並在安裝完成時通知系統變更。 新進程或檢查這些訊息的另一個進程會使用新的環境變數。
使用 Environment 資料表修改路徑環境變數時,請勿嘗試在 [值] 欄位中明確輸入整個新路徑。 相反地,藉由前置詞或附加值和分隔符來擴充現有的路徑(;)至 [~]。 如果 [~] 不存在於 [值] 字段中,現有的路徑資訊會遺失,而且安裝 .msi 檔案可能會導致計算機無法開機。 路徑變數最常使用語法來設定:[~];價值。
從終端機伺服器執行每部計算機安裝時,安裝程式會寫入個別用戶環境變數,以 HKU\。Default\Environment。 因為終端機服務不會復寫登錄的這個區段,因此安裝不會設定每個用戶的環境變數。 用於每部電腦安裝的套件應該將環境變數寫入電腦的環境,方法是在 [名稱] 資料列中包含 * 。 如果套件可以安裝每個使用者或每部計算機,請建立兩個元件:(1) 針對使用者設定所撰寫的環境數據表專案,以及使用針對計算機設定所撰寫的環境數據表,建立每部計算機元件的 2。 使用 Privileged 屬性來設定此元件的安裝。