是否可以在setup.exe运行时创建环境变量

时间:2014-04-21 07:23:54

标签: c++ visual-studio-2012 deployment installshield setup-project

我需要为我的abc项目创建setup.exe(用c ++编写)。 在运行setup.exe之前,我需要创建并将环境变量设置为某个值。 是否可以添加“创建和设置环境变量值”的自定义操作 在安装程序中,如果是,那么如何。

我正在使用 VS 2012和Installshield

由于

1 个答案:

答案 0 :(得分:1)

您没有描述您的根本问题,但我可以就过去曾经遇到的环境变量竞争条件向您提供建议。通常情况下,我的安装程序会使用标准技术(Windows Installer Environment表更新注册表并广播设置更改)然后如果仍然存在安装程序中运行的自定义代码的竞争条件,我将自定义action为流程设置环境以解决问题。这样就可以正确完成永久性更改,并注入临时更改以使自定义操作满意。

两种最常见的竞争条件是:

1)由于服务控制管理器行为,由Windows服务托管的子进程的变化无法获取设置更改消息

2)挂起的重启导致MSI不发送设置更改消息。在这种情况下,还可以编写一个自定义操作,除了在标准操作完成后才发送消息,不执行任何操作。