WriteEnvironmentStrings 操作

WriteEnvironmentStrings 操作修改环境变量的值。

运行 WriteEnvironmentStrings 操作或 RemoveEnvironmentStrings 操作时,对于正在进行的安装,环境变量不会更改。 在 Windows 2000、Windows Server 2003、Windows XP 和 Windows Vista 上,此信息存储在注册表中,当安装完成时,发送 WM_SETTINGCHANGE 消息以通知系统所做的更改。 另一个进程可以通过处理这些消息来接收更改通知。 如果系统重启处于挂起状态,则不会发送任何消息。 包可以使用 MsiSystemRebootPending 属性来检查系统重启是否处于挂起状态。

安装程序仅在安装或重新安装组件期间运行 WriteEnvironmentStrings 操作,仅在删除组件期间运行 RemoveEnvironmentStrings 操作

根据主要操作和修饰符的选择,写入或删除值。 以下 ActionData 消息部分介绍了这些内容。 请注意,根据指定的操作,WriteEnvironmentStrings 可能会删除变量,RemoveEnvironmentStrings 可能会基于 Environment 表的创作添加变量。

序列限制

在 RemoveEnvironmentStrings 操作之前,必须执行 InstallValidate 操作。 由于 WriteEnvironmentStrings 操作和 RemoveEnvironmentStrings 操作永远不会在安装或删除组件期间同时应用,因此其相对序列不受限制。

ActionData 消息

字段 操作数据说明
[1] 要修改的环境变量的名称。
[2] 环境变量值。
[3] 这是指定要执行的操作的位标志字段。 对于主要操作,仅包含一个位。 此字段中可能包含多个修饰符位。 请参阅以下位标志说明。

 

位值 主要操作的说明
0x1 设置。 在所有情况下,设置环境变量的值。
如果此位与 Append 或 Prefix 修饰符位组合使用,则操作会将该值添加到变量中的任何现有值。
0x2 设置。 如果变量不存在,则设置值。
如果此位与 Append 或 Prefix 修饰符位组合使用,则操作会将该值添加到变量中的任何现有值。
0x4 删除。 从变量中删除值。
如果此位与 Append 或 Prefix 修饰符位组合使用,则该值将从现有字符串中删除(如果该值存在)。

 

位值 修饰符的说明
0x20000000 如果设置了此位,则操作将应用于计算机环境变量。
如果未设置此位,则操作将应用于用户的环境变量。
0x40000000 Append。 此位是可选的。 请勿同时设置 Append 和 Prefix 修饰符。
0x80000000 Prefix。 此位是可选的。 请勿同时设置 Append 和 Prefix 修饰符。