यदि आप मर्ज मॉड्यूल नहीं प्राप्त कर सकते हैं (यदि आइटम प्रकाशक द्वारा उपलब्ध कराया गया है तो पसंदीदा समाधान होगा), तो आप स्थापना के साथ एक EXE शामिल कर सकते हैं और फिर इसे अपने WiX इंस्टॉल के दौरान निष्पादित कर सकते हैं कस्टम कार्रवाई
ट्रामोंटाना पर excellent tutorial on WiX से, यहाँ है एक page on custom actions और उन्हें सेट अप करने के लिए - आप मूल रूप से अपने WiX फ़ाइल में एक <CustomAction>
तत्व को परिभाषित और क्या करना है निर्दिष्ट करने की आवश्यकता है जब यह मार डाला है:
<CustomAction Id='LaunchFile' FileKey='FoobarEXE' ExeCommand='' Return='asyncNoWait' />
हो जाएगा ताकि एक फ़ाइल लॉन्च करें जिसे आपने अभी अपने ऐप के हिस्से के रूप में स्थापित किया है और इसे आपकी वाईएक्स स्क्रिप्ट में FoobarEXE
के रूप में संदर्भित किया गया है।
<CustomAction Id='LaunchFile' BinaryKey='FoobarEXE' ExeCommand='' Return='asyncNoWait' />
यह एक बाइनरी फ़ाइल (जैसे एक EXE) का संदर्भ होता है, कि आप (MSI या कैब) अपने WiX स्थापना पैकेज में शामिल है, लेकिन यह स्थापना के भाग के रूप में स्थापित नहीं हो गया है, और कहा कि एक के रूप में निकाला गया है बाइनरी फ़ाइल।
एक बार जब आप जानते हैं कि आप क्या करेंगे, आप स्थापना चरणों के अनुक्रम में जब परिभाषित करने की जरूरत है, इस कस्टम क्रिया निष्पादित किया जाना चाहिए:
<InstallExecuteSequence>
...
<Custom Action='LaunchFile' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>
यहाँ, कस्टम क्रिया कहा जाता LaunchFile
के बाद निष्पादित किया जाएगा स्थापना को अंतिम रूप दिया गया है, लेकिन केवल, अगर यह निर्धारित किया गया था कि ऐप अभी तक स्थापित नहीं किया गया था।
तो, मुझे लगता है कि, आप वाईएक्स में कस्टम एक्शन के साथ क्या करने का प्रयास कर रहे हैं, उसे करने में सक्षम होना चाहिए - अतिरिक्त जानकारी के लिए WiX 2.0 documentation और Steven Bone's blog post series देखें।
आशा है कि इससे मदद मिलती है!
मार्क
हां, यह एक एमएसआई बनाता है - लेकिन आप अभी भी बाहरी अनुप्रयोगों को कॉल कर सकते हैं, यहां तक कि वे केवल EXE हैं। अनुमोदित, एक मर्ज मॉड्यूल जाने का पसंदीदा तरीका होगा, लेकिन अगर केवल एक EXE उपलब्ध है, तो इसे कस्टम एक्शन के माध्यम से भी कहा जा सकता है! –
नहीं यदि वह EXE वास्तव में एक बूटस्ट्रैपर है जो बदले में एक एमएसआई का आह्वान करेगा। मेरी समझ यह थी कि पीओएस इंस्टॉलर वास्तव में बूटस्ट्रैपर था ... लेकिन, मैं गलत हो सकता था। – Nestor
आह हाँ - अच्छा बिंदु। यदि पीओएस इंस्टॉल वास्तव में एक एमएसआई है, तो आपको डॉटनेट इन्स्टॉलर लिंक के लिए मर्ज मॉड्यूल –