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 修饰符。 |