如何根据您在WIX中的InstallScope对话框中选择的方式设置ALLUSERS?

时间:2014-07-22 02:31:32

标签: wix wix3.8

我使用WiX 3.8创建安装pakeage。我的安装程序应启用每用户和每台计算机的安装。我想通过使用单选按钮实现这一点(" Everyone"和#34;只是我")。

我在互联网上找到了几个参考文献:

选择当前用户或所有用户安装:添加用户界面,这是另一个WiX教程的一部分 - 第2部分 - 添加UI。 将ALLUSERS属性设置为空字符串:使用WiX 3.0创建在Windows Vista上不提示提升的每用户MSI 如果我理解正确的话,我的安装程序应该将ALLUSERS属性设置为1,以便每台机器安装和#34;" (每个用户安装的空字符串)。

我的问题是无论我尝试什么,ALLUSERS始终设置为1.即使我根本没有设置它!

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

<?xml version="1.0" encoding="UTF-8"?>
      <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Product Id="{95B5E9E1-AB21-4947-A047-74C169B1D1F2}" Name="Xproduct" Language="1033"  Version="1.0.0.0" Manufacturer="X Limited" UpgradeCode="af9969f2-fb9c-44c7-b207-e89f1d900a91">


<Package Id="*"
     InstallerVersion="301"
     Languages="1033"
             Compressed="yes"

             Manufacturer="X Limited"
             Description="Install"
             Keywords="Installer, MSI"
             Comments="(c) 2013 NCCD X Limited"        
     SummaryCodepage="1252"/>
<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />
   <Property Id="ALLUSERS" Secure="yes" Value="1" />
      <Property Id="ASSISTANCE_USERS" Value="all"/>
   </Product>
</Wix>

InstallScope.wxs

<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> 

然后根据ASSISTANCE_USERS设置ALLUSERS,但我不知道把它放在哪里;

<Publish Property="ALLUSERS"
       Value="{}">ASSISTANCE_USERS = "cur"</Publish> <!-- set null value -->

 <Publish Property="ALLUSERS"
       Value="1">ASSISTANCE_USERS = "all"</Publish>

请告诉我如何修改这些代码来实现这个功能?

1 个答案:

答案 0 :(得分:0)

将此代码放入解决方案中的自定义UI代码中。您可以在按钮控件标记内发布属性。请参阅以下代码,了解如何通过按钮点击发布属性。

<Control Id="InstallScopeNext" Type="PushButton" X="236" Y="243" Width="56" Height="17" Default="yes" Text="(loc.WixUINext)">
<Publish Property="ALLUSERS" Value="{}">ASSISTANCE_USERS = "cur"</Publish> <!-- set null value -->
<Publish Property="ALLUSERS" Value="1">ASSISTANCE_USERS = "all"</Publish>
</Control>