2010-06-21 32 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 ]]>