wix:如何根据UI radio-group值设置环境变量?

时间:2017-01-31 02:06:46

标签: wix

在Wix安装程序中,我正在尝试根据无线电组的值设置环境变量。我找不到如何做到这一点我没有运气。

UI中的广播组有3个选项:

  1. 不设置环境变量
  2. 为每个用户设置变量
  3. 设置每台机器的变量
  4. 带有3按钮广播组的用户界面如下所示:

    <Control ...>
      <RadioButtonGroup Property="VAR_SCOPE">
        <RadioButton Value="user" ... />
        <RadioButton Value="machine" ... />
        <RadioButton Value="none" ... />
      </RadioButtonGroup>               
    </Control>
    

    创建环境变量的组件如下:

    <Directory ...>
      <Component ...>
        <CreateFolder />
        <Environment Id='Evar' Action='set' System='yes' Name='FOO' Value='bar' />
      </Component>
    </Directory>
    

    是否为每个用户或每台机器设置env-var取决于'System'属性的值:yes表示机器,no表示用户。

1 个答案:

答案 0 :(得分:0)

我不相信MSI支持这一点。我在https://msdn.microsoft.com/en-us/library/windows/desktop/aa368369(v=vs.85).aspx中看到一条评论说在Windows 2000上*前缀控制范围,但我从未使用过它。据我所知,MSI始终尊重安装的系统环境。 (每用户与每台机器)我认为与注册表可以做的相比,这是一个短暂的进展。环境变量实际上只是具有SendMessage的注册表表项,因此您可以使用Registry和minmilist自定义操作。

如果你这样做,你想要有2个互斥的组件。