2013-07-01 7 views
12

मेरे पास दो कस्टम क्रियाएं हैं, जिनमें से एक जब मैं अपना उत्पाद स्थापित करता हूं और दूसरा अनइंस्टॉल किया जाता है तो मैं निष्पादित करना चाहता हूं।मैं वाईएक्स में एक कस्टम एक्शन कैसे कर सकता हूं जो केवल इंस्टॉल या अनइंस्टॉल करने पर निष्पादित करता है?

मेरी कस्टम कार्रवाई को वर्तमान में "InstallFinalize" के बाद मर्ज मॉड्यूल से बुलाया जाता है, लेकिन यह दोनों स्थापित और अनइंस्टॉल करने के लिए होता है। मैं जोड़ना "स्थापित नहीं और UPGRADINGPRODUCTCODE नहीं" हालत की कोशिश की है, लेकिन है कि मुझे एक त्रुटि दिया:

Error 2762. Cannot write script record. Transaction not started.

मैं भी दूसरे के कार्यों (उदाहरण के लिए, UnpublishComponents) के लिए संलग्न कोशिश की है, लेकिन मैं नहीं कर सकता इंस्टॉल या अनइंस्टॉल करने के लिए अद्वितीय कोई भी ढूंढें।

मैं इस समस्या को कैसे ठीक कर सकता हूं?

+0

संभावित डुप्लिकेट [एक वाईएक्स कस्टम एक्शन कैसे जोड़ें जो केवल अनइंस्टॉल (एमएसआई के माध्यम से) पर होता है?] (Http://stackoverflow.com/questions/320921/how-to-add-a-wix-custom- कार्रवाई-वह-होता-केवल-अनइंस्टॉल-थ्रू-एमएसआई) –

उत्तर

11

केवल स्थापना के लिए अगले
1. का प्रयास करें:

<InstallExecuteSequence> 
<Custom Action="SomeAction" After="InstallFinalize">NOT Installed AND NOT REMOVE</Custom> 
</InstallExecuteSequence> 

2. स्थापना रद्द करने के लिए इस्तेमाल करने की कोशिश: Rob's answer

UPGRADINGPRODUCTCODE संपत्ति केवल RemoveExistingProducts सीए के दौरान सेट है

+0

बहुत बहुत धन्यवाद, यह करने का यह तरीका है। –

1

परिवर्तनीय "INSTALLED" का उपयोग करना चाहिए "Installed"। स्टैक   ओवरफ़्लो उत्तर How to add a WiX custom action that happens only on uninstall (via MSI)? में स्थितियों को स्थापित और अनइंस्टॉल करने के बारे में अधिक जानकारी प्राप्त करें।

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

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