¿Cómo configurar la lista de funciones que se instalarán si se presiona el botón?
Frecuentes
Visto 3,515 equipos
3
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>
2 Respuestas
5
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
4
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 wix or haz tu propia pregunta.
¡Es genial que finalmente lo hayas descubierto! - Yan Sklyarenko