在WiX中为每个用户或每台机器安装上下文设置ALLUSERS

在WiX中为每个用户或每台机器安装上下文设置ALLUSERS,wix,windows-installer,Wix,Windows Installer,我使用WIX3.5。我的安装程序应同时启用每个用户和每台机器的安装。我想通过使用单选按钮(“每个人”和“只有我”)来实现这一点 我在网上找到了一些参考资料: 选择当前用户或所有用户安装:,这是另一个WiX教程的一部分-第2部分-添加UI 将ALLUSERS属性设置为空字符串: 如果我理解正确,我的安装程序应该为每台机器安装将ALLUSERS属性设置为1,为每用户安装将ALLUSERS属性设置为“”(空字符串) 我的问题是无论我尝试什么,ALLUSERS总是设置为1。即使我根本没有设定 以下是

我使用WIX3.5。我的安装程序应同时启用每个用户和每台机器的安装。我想通过使用单选按钮(“每个人”和“只有我”)来实现这一点

我在网上找到了一些参考资料:

  • 选择当前用户或所有用户安装:,这是另一个WiX教程的一部分-第2部分-添加UI
  • 将ALLUSERS属性设置为空字符串:
如果我理解正确,我的安装程序应该为每台机器安装将ALLUSERS属性设置为1,为每用户安装将ALLUSERS属性设置为“”(空字符串)

我的问题是无论我尝试什么,ALLUSERS总是设置为1。即使我根本没有设定

以下是我尝试过的几件事:

<Control Id="UserSelection"
         Type="RadioButtonGroup"
         X="26"
         Y="115"
         Width="305"
         Height="45"
         Property="ASSISTANCE_USERS"
         Text="ASSISTANCE_USERS">
    <RadioButtonGroup Property="ASSISTANCE_USERS">
        <RadioButton Value="cur"
                     X="0"
                     Y="0"
                     Width="295"
                     Height="16"
                     Text="Just me" />
        <RadioButton Value="all"
                     X="0"
                     Y="20"
                     Width="295"
                     Height="16"
                     Text="Everyone" />
    </RadioButtonGroup>
</Control>

然后根据用户的帮助设置诱惑者:

  <Publish Property="ALLUSERS"
           Value="{}">ASSISTANCE_USERS = "cur"</Publish> <!-- set null value -->
  <Publish Property="ALLUSERS"
           Value="1">ASSISTANCE_USERS = "all"</Publish>
ASSISTANCE\u USERS=“cur”
协助用户=“全部”
然而,诱惑者总是1

我还尝试将ALLUSERS设置为空字符串:

<Property Id="ALLUSERS" Secure="yes"/>

这应该将诱惑设置为“”,但保持为“1”


一旦我能够设置ALLUSERS,我应该能够使用HKMU进行每个用户和每台机器的安装。

检查详细日志(使用/l*vx):MSI记录每个属性更改,以便您可以看到何时设置ALLUSERS。

嗨,Bob,这正是我所做的。当在.msi的属性表中设置ALLUSERS时,日志:Property(C):ALLUSERS=1中只有一行。你在用Package/@InstallScope吗?我刚查过你。我没有使用Package/@InstallScope。当我尝试InstallScope=“perUser”时,我仍然得到ALLUSER=1。文档中说,设置InstallScope=“perMachine”将ALLUSER设置为1。InstallScope=“perUser”是否应将ALLUSER设置为“”?还有什么可以将ALLUSERS设置为1?WiX设置ALLUSERS中没有其他设置。如果您正在使用任何第三方库或合并模块,它们很可能是源代码。谢谢@Bob!是的,我使用合并模块包含VC可再发行文件<代码>。此合并模块将ALLUSERS设置为1。我还成功地通过使用[