installer - केवल इंस्टॉल में कस्टम कार्रवाई निष्पादित करने के लिए(अनइंस्टॉल नहीं करें)




windows-installer installshield (4)

एक उदाहरण:

<InstallExecuteSequence>
..
    <Custom Action="QtExecIdOfCA" Before="InstallFinalize">NOT Installed</Custom>
..
</InstallExecuteSequence>

..
..
<CustomAction Id="QtExecIdOfCA" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="deferred" Return="ignore" Impersonate="no"/>

सूचना! शर्त <Custom> टैग में जोड़ा गया है और <CustomAction> यह मुझे उलझन में नहीं है, क्योंकि कस्टम कार्रवाई के बाद कार्रवाई होती है

मुझे यकीन है कि यह काफी आसान है, लेकिन मेरे पास इसके साथ कठिन समय था। मेरे पास एक कस्टम एक्शन है जो इंस्टॉलेशन पर एक अलग (गैर-एमएसआई) इंस्टॉलर निष्पादित करता है। दुर्भाग्यवश, मैंने देखा है कि यह अनइंस्टॉलेशन पर इंस्टॉलर को भी निष्पादित करता है!

मैंने विकल्पों को देखा है लेकिन मुझे लगता है कि यह कैसे रोकें। अगर कोई मेरी मदद कर सकता है तो मैं अविश्वसनीय रूप से आभारी रहूंगा।

साथ ही, मैं केवल अनइंस्टॉल के दौरान जाने के लिए एक कस्टम कार्रवाई कैसे सेट करूं? किसी भी मदद की बहुत सराहना की है दोस्तों!


एक सुधार का थोड़ा सा:

अंत में, अनइंस्टॉल करते समय केवल एक क्रिया चलाने के लिए निम्न शर्त का उपयोग करें: REMOVE="ALL"

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


कार्रवाई पर एक शर्त जोड़ें ताकि यह केवल स्थापना के दौरान ट्रिगर हो, अनइंस्टॉलेशन न हो।

केवल इंस्टॉल के दौरान एक्शन रन

NOT Installed AND NOT PATCH

एक्शन इंस्टॉल और मरम्मत के दौरान चलता है

NOT REMOVE

केवल प्रारंभिक स्थापना पर चलाएं:

NOT Installed

प्रारंभिक इंस्टॉल पर या जब मरम्मत का चयन किया जाता है।

NOT Installed OR MaintenanceMode="Modify"

अनइंस्टॉल के दौरान केवल एक क्रिया चलाने के लिए निम्न शर्त का उपयोग करें:

REMOVE~="ALL"

अपग्रेड के दौरान केवल एक क्रिया चलाने के लिए:

Installed AND NOT REMOVE