2010-06-21 10 views
7

Ich schrieb eine benutzerdefinierte Aktion, um eine geplante Aufgabe nach der Installation zu erstellen. Ich möchte nicht, dass die benutzerdefinierte Aktion ausgeführt wird, wenn der Benutzer die Zeitplanaufgabe nicht erstellen möchte. Während der Installation wird, auch wenn ich "Feature wird nicht verfügbar" wählen, die Schtask erstellt. Wie verhindere ich, dass die benutzerdefinierte Aktion ausgeführt wird?Benutzerdefinierte Ausführung der Aktion nach Feature

Antwort

9

können Sie eine Bedingung für Ihre CA Ausführung gesetzt:

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

Hoffe, es hilft.

Wenn Sie mehr über die CA-Bedingungen erfahren möchten, können Sie den folgenden Link verwenden. Advanced Custom Action Conditions

0

Eigentlich habe ich das Problem herausgefunden. Die & FeatureName = 3 sagt mir, dass das Feature installiert werden soll, und das Gegenteil dazu ist! FeatureName = 3, was bedeutet, dass das Feature bereits installiert ist. Diese feste mein Problem, so dass die endgültige Lösung

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

"MyService" wurde Feature Name ist

"FEATURE_MyService" ist mein Zustand Name: Ich Checkbox bin mit dem Wert von FEATURE_MyService Eigenschaft festlegen

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

Verwandte Themen