如果按下按钮,如何设置要安装的功能列表?

Ner*_*lle 3 wix

我正在使用WixUI_Mondo套装.我修改了"CompleteButton"按钮SetupTypeDlg:

<Control Id="ServerButton" Type="PushButton" X="40" Y="120" Width="80" Height="17" ToolTip="!(loc.SetupTypeDlgServerButtonTooltip)" Text="!(loc.SetupTypeDlgServerButton)">
   <Publish Property="WixUI_InstallMode" Value="InstallServer">1</Publish>                  
   <Publish Property="SERVICE" Value="[SERVSTR]">1</Publish>
   <Publish Property="ADDLOCAL" Value="Feature1,Feature2,Feature3">1</Publish>
</Control>

<Property Id="ADDLOCAL" Secure="yes"></Property>
Run Code Online (Sandbox Code Playgroud)

当我按下ServerButton日志时说:

(CLIENT)     MSI (c) (1C:88) [15:28:49:154]: PROPERTY CHANGE: Adding ADDLOCAL property. Its value is 'Feature1,Feature2,Feature3'. 
(UNKNOWN)     ???????? 15:28:49: ServStrDlg. Dialog created 
(UNKNOWN)     ???????? 15:28:53: ShortsDlg. Dialog created 
(UNKNOWN)     ???????? 15:28:55: VerifyReadyDlg. Dialog created 
(CLIENT)     MSI (c) (1C:88) [15:28:55:966]: Note: 1: 2727 2: 
(UNKNOWN)     ???????? ????????? 15:28:56: WelcomeDlg. ??? ???????? 1. 
(CLIENT)     MSI (c) (1C:DC) [15:28:56:076]: Doing action: ProgressDlg 
(UNKNOWN)     ???????? 15:28:56: ProgressDlg. 
(UNKNOWN)     ?????? ???????? 15:28:56: ProgressDlg. 
(UNKNOWN)     ???????? 15:28:56: ProgressDlg. Dialog created 
(UNKNOWN)     ???????? ????????? 15:28:56: ProgressDlg. ??? ???????? 1. 
(CLIENT)     MSI (c) (1C:DC) [15:28:56:091]: Doing action: ExecuteAction 
(UNKNOWN)     ???????? 15:28:56: ExecuteAction. 
(UNKNOWN)     ?????? ???????? 15:28:56: ExecuteAction. 
(CLIENT)     MSI (c) (1C:DC) [15:28:56:091]: PROPERTY CHANGE: Adding SECONDSEQUENCE property. Its value is '1'. 
(CLIENT)     MSI (c) (1C:DC) [15:28:56:091]: Grabbed execution mutex. 
(CLIENT)     MSI (c) (1C:DC) [15:28:56:091]: Incrementing counter to disable shutdown. Counter after increment: 0 
(CLIENT)     MSI (c) (1C:DC) [15:28:56:091]: Switching to server: NETFRAMEWORK40CLIENT="#1"INSTALLLOCATION="some dir" TARGETDIR="C:\"
 MANUFACTURERDIR="C:\Program Files\..\" CURRENTDIRECTORY="C:\.." CLIENTUILEVEL="0" CLIENTPROCESSID="6684" USERNAME="User" COMPANYNAME=".."
 SOURCEDIR=".." ACTION="INSTALL" EXECUTEACTION="INSTALL" SECONDSEQUENCE="1" ROOTDRIVE="C:\" INSTALLLEVEL="1" ADDLOCAL=Feature4,Feature5,Feature6 
Run Code Online (Sandbox Code Playgroud)

Feature1,Feature2,Feature3的级别超过3.无法弄清楚它为什么会通过INSTALLLEVEL="1".

UPD:

我做了下一个更改,结果是一样的.安装程序正在修改客户端的INSTALLLEVEL,ADDLOCAL属性的值.在服务器端:INSTALLLEVEL = 11,ADDLOCAL由"Level"属性<= 11的功能组成.

<Control Id="ServerButton" Type="PushButton" X="40" Y="120" Width="80" Height="17" ToolTip="!(loc.SetupTypeDlgServerButtonTooltip)" Text="!(loc.SetupTypeDlgServerButton)">
   <Publish Property="WixUI_InstallMode" Value="InstallServer">1</Publish> 
   <Publish Event="SetInstallLevel" Value="11">1</Publish>                 
   <Publish Property="SERVICE" Value="[SERVSTR]">1</Publish>
   <Publish Property="ADDLOCAL" Value="Feature1,Feature2,Feature3">1</Publish>
</Control>
Run Code Online (Sandbox Code Playgroud)

Ner*_*lle 5

我看了这个文章很多次,终于发现:我必须发布Event='AddLocal'没有Property.感谢Yan,非常感谢你.这是工作代码:

<Control Id="ServerButton" Type="PushButton" X="40" Y="120" Width="80" Height="17" ToolTip="!(loc.SetupTypeDlgServerButtonTooltip)" Text="!(loc.SetupTypeDlgServerButton)">
   <Publish Property="WixUI_InstallMode" Value="InstallServer">1</Publish>                  
   <Publish Property="SERVICE" Value="[SERVSTR]">1</Publish>
   <Publish Event="AddLocal" Value="ALL">1</Publish>
   <Publish Event="Remove" Value="Feature4">1</Publish>
   <Publish Event="Remove" Value="Feature5">1</Publish> 
   <Publish Event="Remove" Value="Feature6">1</Publish>
</Control>
Run Code Online (Sandbox Code Playgroud)

我在下一个对话框的"后退"按钮中添加了一个事件:

<Control Id="Back" Type="PushButton" X="192" Y="243" Width="56" Height="17" Text="!(loc.WixUIBack)">
   <Publish Event="SetInstallLevel" Value="3">WixUI_InstallMode="InstallServer"</Publish>
</Control>
Run Code Online (Sandbox Code Playgroud)