2010-06-21 33 views
7

我编写了一个自定义操作以在安装后创建计划任务。 我不希望自定义操作在用户不想创建计划任务时运行。在安装过程中,即使我选择“Feature will be unAvailable”,schtask也会被创建。我如何防止自定义操作执行?按功能执行的自定义操作

回答

9

您可以设定的条件为你的CA执行:

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

希望它能帮助。

如果您想了解更多关于CA条件的信息,可以查看下面的链接。 Advanced Custom Action Conditions

0

添加到您的安装执行顺序。

+0

<![CDATA [&SWUSchedTaskFeature = 3]]> – user350332 2010-06-22 13:49:15

0

其实我发现了这个问题。 & FeatureName = 3告诉我该功能将被安装,与此相反的是!FeatureName = 3,这意味着该功能已被安装。这个固定我的问题,所以最终的解决方案成为

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

“的MyService”是功能名称

“FEATURE_MyService”是我的条件名称:我使用复选框设置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 ]]>