¿Cómo configurar la lista de funciones que se instalarán si se presiona el botón?

Estoy usando WixUI_Mondo establecer. Modifiqué el botón "CompleteButton" en el 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>

Cuando empujo ServerButton el registro dice:

(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 

Los niveles de Feature1, Feature2, Feature3 son más de 3. No puedo entender por qué está pasando INSTALLLEVEL="1".

UPD:

Hice los siguientes cambios, el resultado es el mismo. El instalador está modificando los valores de las propiedades INSTALLLEVEL,ADDLOCAL en el lado del cliente. En el lado del servidor: INSTALLLEVEL=11,ADDLOCAL consta de funciones con el atributo "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>

preguntado el 31 de julio de 12 a las 12:07

2 Respuestas

Yo leo esto artículo muchas veces y finalmente encontre: tengo que publicar Event='AddLocal' no es un Property. Muchas gracias, Yan, por tu tiempo. Aquí está el código de trabajo:

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

Y agregué un evento al botón "Atrás" del siguiente cuadro de diálogo:

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

Respondido 14 ago 12, 07:08

¡Es genial que finalmente lo hayas descubierto! - Yan Sklyarenko

Según la Documentación de MSDN, el nivel de instalación especificado por el INSTALLLEVEL La propiedad puede ser anulada por una serie de propiedades, incluyendo ADDLOCAL. Por lo tanto, según tengo entendido, incluso si INSTALLLEVEL se establece a 1, es anulado por el ADDLOCAL propiedad y no es tomado en consideración por el instalador de Windows.

Si experimenta algún error o comportamiento incorrecto relacionado con esto, agregue más detalles al respecto a su pregunta.

Respondido 01 ago 12, 07:08

Encontré el artículo relacionado de Bob aquí: joyofsetup.com/2007/05/30/feature-conditions-and-ui. Estoy haciendo lo mismo que se describe en. ¿O no? El registro no indica ningún error. De acuerdo con el archivo de registro, el instalador configura ADDLOCAL="Feature1,Feature2,Feature3" según sea necesario. Puede ser demasiado tarde para establecer esta propiedad... No puedo entender - Nerielle

No hay error en el registro, pero ¿qué pasa con el comportamiento? ¿Es lo que esperabas o no? - Yan Sklyarenko

No, instala características con INSTALLLEVEL=1; usa el valor predeterminado. no lo pongo en ningun lado Espero que use el nuevo valor de la propiedad ADDLOCAL. Pero no lo hace - Nerielle

El original CompleteButton publica el evento SetInstallLevel, que establece el INSTALLLEVEL a 1000: <Publish Event="SetInstallLevel" Value="1000">1</Publish> ¿Te estás perdiendo esto en tus cambios? CompleteButton ¿control? - Yan Sklyarenko

Sí, había eliminado esta fila. No tengo la acción SetInstallLevel dentro de mi elemento de control - Nerielle

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.