2010-06-21 14 views
7

Escribí una acción personalizada para crear una tarea programada después de la instalación. No quiero que se ejecute la acción personalizada cuando el usuario no desea crear la tarea de programación. Durante la instalación, incluso si selecciono "Característica no estará disponible", se está creando la schtask. ¿Cómo evito que se ejecute la acción personalizada?Ejecución de acciones personalizadas por función

Respuesta

9

Puede establecer una condición para su ejecución CA:

<InstallExecuteSequence> <Custom Action="ScheduleTaskCA" After="InstallFinalize"> <![CDATA[&feature_name=3]]> </Custom> </InstallExecuteSequence>

espero que ayude.

Si quiere leer más sobre las condiciones de las CA, puede visitar el siguiente enlace. Advanced Custom Action Conditions

0

En realidad, me encontré con el problema. El & FeatureName = 3 me dice que la característica debe instalarse y, por el contrario, es! FeatureName = 3, lo que significa que la característica ya está instalada. Esto fija mi problema por lo que la solución final se convirtió en

&FeatureName = 3 OR (!FeatureName = 3 AND NOT (Uninstalling OR MSIPATCHREMOVE OR RemovingForUpgrade)  
0

"MyService" es característica Nombre

"FEATURE_MyService" es mi condición Nombre: Estoy utilizando casilla de verificación para establecer el valor de la propiedad FEATURE_MyService

<Control Id="Chk1" Type="CheckBox" Height="12" Width="110" X="50" Y="199" Text="Portal Windows Service" Property="FEATURE_MyService" CheckBoxValue="0" Hidden="yes"> 

<Custom Action='CAction1' After="InstallExecute"> 
    NOT Installed AND <![CDATA[(&MyService=3)]]> 

<Custom Action='CAction2' Before='InstallExecute'> 
    <![CDATA[(&MyService=3 AND NOT Installed)]]> 

<Custom Action='CAction3' After='InstallFinalize'> 
    <![CDATA[FEATURE_MyService AND NOT Installed ]]> 

Cuestiones relacionadas