2013-08-30 6 views
5

मेरे पास कुछ कस्टम क्रियाएं हैं जिन्हें मैं केवल अपग्रेड परिदृश्य में निष्पादित करना चाहता हूं।मैं सामान्य स्थापना और WIX में अपग्रेड के बीच अंतर कैसे करूं?

मैं कुछ गुण, उदाहरण के लिए "MYPROPERTY" स्थापित करने के लिए कोशिश कर रहा हूँ ... जब मैं एक मानक के माध्यम से में आते हैं स्थापित करते हैं, मैं उन्हें सेट कर सकते हैं, और है कि XML का एक उदाहरण इस प्रकार है ...

<Custom Action="SetMyPropertyToOn" After="exampleActionRuuningBeforeThisOne"> (ENABLEMYPROPERTY_CB) AND (NOT ENABLEMYPROPERTY_CB="0") AND (NOT ENABLEMYPROPERTY) AND (NOT Installed)</Custom> 

यह सामान्य इंस्टॉल में चलता है ... मैं इसे अपग्रेड परिदृश्य में भी चलाने के लिए पसंद करूंगा।

+0

एक प्रमुख अपग्रेड करें या माइनर अपग्रेड करें? यदि आप मामूली अपग्रेड कर रहे हैं तो इंस्टॉल किया जाएगा और यह गलत होगा। –

उत्तर

19

मैं अपने सभी व्यवस्था में इस का उपयोग करें:

<SetProperty After="FindRelatedProducts" Id="FirstInstall" Value="true"> 
     NOT Installed AND NOT WIX_UPGRADE_DETECTED AND NOT WIX_DOWNGRADE_DETECTED 
    </SetProperty> 
    <SetProperty After="SetFirstInstall" Id="Upgrading" Value="true"> 
     WIX_UPGRADE_DETECTED AND NOT (REMOVE="ALL") 
    </SetProperty> 
    <SetProperty After="RemoveExistingProducts" Id="RemovingForUpgrade" Sequence="execute" Value="true"> 
     (REMOVE="ALL") AND UPGRADINGPRODUCTCODE 
    </SetProperty> 
    <SetProperty After="SetUpgrading" Id="Uninstalling" Value="true"> 
     Installed AND (REMOVE="ALL") AND NOT (WIX_UPGRADE_DETECTED OR UPGRADINGPRODUCTCODE) 
    </SetProperty> 
    <SetProperty After="SetUninstalling" Id="Maintenance" Value="true"> 
     Installed AND NOT Upgrading AND NOT Uninstalling AND NOT UPGRADINGPRODUCTCODE 
    </SetProperty> 

तब आप अपने कस्टम क्रिया निर्धारित कर सकते हैं केवल उन्नयन पर चलाने के लिए:

<Custom Action="NameOfCustomAction" Before="InstallFinalize"><![CDATA[Upgrading= "true"]]></Custom> 
+0

धन्यवाद नेटली, मेरे पास केवल इसके साथ एक छोटा मुद्दा है। किसी भी तरह, मैं हमेशा "फर्स्टइनस्टॉल" भाग में जाता हूं, और फिर बाकी को छोड़ देता हूं, अपग्रेड पर भी ... दूसरों को हमेशा छोड़ दिया जाता है। – Slippy

+0

अजीब, मैंने कभी इसका अनुभव नहीं किया। क्या आप अपनी लॉग फ़ाइल पोस्ट कर सकते हैं शायद इससे मदद मिलेगी? –

+4

गुण WIX_UPGRADE_DETECTED और WIX_DOWNGRADE_DETECTED मानते हैं कि मेजर अपग्रेड तत्व का उपयोग किया गया था। उपयोगकर्ता परिभाषित अपग्रेड नियमों में अलग-अलग एक्शनप्रोपर्टी नाम हो सकते हैं और एक मामूली अपग्रेड में ये बिल्कुल नहीं होगा। ओपी ने यह नहीं कहा कि वह किस तरह का अपग्रेड कर रहा था। –

संबंधित मुद्दे