Environment 表

Environment 表用于设置环境变量的值。

Environment 表包含以下列。

类型 密钥 Nullable
环境 Identifier Y N
名称 文本 N N
格式化 N Y
Component_ Identifier N N

环境

这是表的主键,是一个未本地化的标记。

Name

此列是环境变量的可本地化名称。 是写入还是删除键值取决于使用下表中的哪些字符作为名称前缀。 前缀中使用的符号顺序没有影响。

前缀 说明
= 如果环境变量不存在,则创建环境变量,然后在安装期间设置它。 如果环境变量存在,则在安装期间设置它。
+ 如果环境变量不存在,则创建环境变量,然后在安装期间设置它。 如果环境变量已存在,则此项不会影响它的值。
- 删除组件时删除环境变量。 此符号可与任何前缀组合。
! 在安装期间删除环境变量。 仅当环境变量的名称和值与 Environment 表的 Name 和 Value 字段中的条目匹配时,安装程序才会在安装期间删除该变量。 如果你想要删除环境变量(无论其值如何),请使用“!”语法,并将 Value 字段留空。
* 此前缀适用于 Windows 2000,指示名称引用了系统环境变量。 如果没有星号,则安装程序会将变量写入用户环境。 此符号可与任何前缀组合。 用于每计算机安装上下文中的安装的包应该通过在 Name 列中包含 * 将环境变量写入计算机环境。 有关详细信息,请参阅“备注”。
=- 在安装时设置环境变量,在卸载时删除环境变量。 这是一般行为。
!- 在安装或卸载期间删除环境变量。
=+ !+
!=
这些前缀无效

如果表中的 Value 字段包含 [~],则前缀字符仅适用于字符串的指定部分。 以下 Value 列部分介绍了 [~] 的用法。

如果表的 Value 字段为空,则删除环境变量。 因此,如果 Value 字段为空,则 = 前缀会在安装时删除环境变量,而 - 前缀会在卸载时删除所有当前值。

Value

此列包含要设置为带格式字符串的可本地化值。 请参阅 Formatted。 如果将此字段留空,则删除变量。 如果该字段为空,并且 Name 字段中的字符串以 - 符号为前缀,则只有在删除组件时才删除该变量。

若要将某个值追加到现有变量的末尾,请在此字段中的字符串前面加上 Null 字符 [~] 和分隔符作为前缀。 例如,如果分号是所选的分隔符:[~];Value。

若要将某个值添加到现有变量的前面作为前缀,请在此字段中的字符串后面追加分隔符和 Null 字符 [~]。 例如,如果分号是所选的分隔符:Value;[~]。

如果字段中没有 [~],则该字符串表示要设置或删除的整个值。

每行只能包含一个值。 例如,条目 Value;Value;[~] 包含多个值,因此不能使用它,否则会导致不可预知的结果。 条目 Value;[~] 只包含一个值。

如果名称以 + 为前缀,则不能在 Value 列中使用 [~]。 这是因为“+”和“[~]”的含义是明确互斥的。

Component_

Component 表第一列中的外部键。 此列引用了用于控制环境值的安装的组件。

备注

对于设置环境变量的安装程序,需要在 InstallExecuteSequence 表中列出 WriteEnvironmentStrings 操作RemoveEnvironmentStrings 操作

请注意,运行 WriteEnvironmentStrings 操作RemoveEnvironmentStrings 操作时,对于正在进行的安装,环境变量不会更改。 在 Windows 2000 上,此信息存储在注册表中,在安装完成时会显示一条消息来通知系统发生更改。 新进程或检查这些消息的另一个进程将使用新的环境变量。

修改 Environment 表中的路径环境变量时,请不要尝试将整个新路径显式输入到 Value 字段中。 应该通过在 [~] 的前面或后面添加值和分隔符 (;) 来扩展现有路径。 如果 Value 字段中没有 [~],则现有路径信息将会丢失,并且安装 .msi 文件可能会阻止计算机启动。 路径变量的最常见设置方法是使用以下语法:[~];Value。

从终端服务器执行每计算机安装时,安装程序会将每用户环境变量写入 HKU\.Default\Environment。 由于终端服务器不会复制注册表的此部分,因此安装不会设置每用户环境变量。 用于每计算机安装的包应通过在 Name 列中包含 * 将环境变量写入计算机环境。 如果可以按用户或按计算机安装该包,则会创建两个组件:(1) 一个按用户组件,其中包含针对用户设置创建的 Environment 表条目,以及 (2) 一个按计算机组件,其中包含针对计算机设置创建的 Environment 表。 使用 Privileged 属性控制此组件的安装条件。

验证

ICE03
ICE06
ICE32
ICE46
ICE65
ICE69
ICE80