2011-05-03 14 views
14

मैं अपने उत्पाद के लिए MSI बनाने की प्रक्रिया में हूं। मैं चाहता हूं कि उत्पाद साइड-बाय-साइड इंस्टॉल करने में सक्षम हो। ताकि मैं पहले 1.0.0 इंस्टॉल कर सकूं और बाद में 1.0.1 जोड़ सकूं ताकि दोनों संस्करण दोनों स्थापित हो जाएं।वाईएक्स प्रोजेक्ट साइड-बाय-साइड इंस्टॉलेशन की अनुमति देता है

मैं एमएसआई बनाने के लिए वाईएक्स का उपयोग कर रहा हूं और जानना चाहता हूं कि यह विक्स में कैसे किया जा सकता है और क्या किया जाना चाहिए? उदाहरण

  • के लिए मैं सभी घटकों के लिए नया GUIDs बनाने की जरूरत है?
  • मैं कैसे पर संस्करण जानकारी जोड़ूं या मुझे अपने उत्पाद का पूरी तरह से नाम बदलना चाहिए?
  • मैं प्रोजेक्ट कैसे बना सकता हूं ताकि नए संस्करण को जारी करने के लिए Wix प्रोजेक्ट में न्यूनतम परिवर्तन की आवश्यकता हो?

नमस्ते, Martijn

उत्तर

9

तुम सिर्फ शीर्ष स्तर के ProductCode बदल रहा है और UpgradeCode GUIDs अपने दो उत्पादों पूरी तरह से असंबंधित है, और संस्करण की पहचान करने के लिए ProductVersion का उपयोग करने के साथ भाग प्राप्त करने में सक्षम होना चाहिए। आप उत्पादों के बीच घटक ग्रिड साझा कर सकते हैं (इस प्रकार मॉड्यूल काम करते हैं) ताकि आपके इंस्टॉलर (घटक परिभाषाओं) की गड़बड़ी को tweaked की आवश्यकता न हो और अभी भी साझा किया जा सके।

आप बड़ी चुनौती सुनिश्चित करेंगे कि दो decoupled उत्पादों एक दूसरे के साथ हस्तक्षेप नहीं करते हैं, उदाहरण के लिए एक ही डिफ़ॉल्ट स्थापना फ़ोल्डर, मेनू प्रविष्टियां शुरू करें और समान प्रोग्राम जोड़ें/निकालें। आप ProductName प्रॉपर्टी में उत्पाद संस्करण संख्या को शामिल करके इसे प्राप्त कर सकते हैं, जो आपके इंस्टॉल यूआई में थोड़ी तकनीक देख सकता है, लेकिन इसकी अनदेखी नहीं है।

+0

आपके उत्तरों के लिए धन्यवाद! मैं अपनी प्रगति के साथ अद्यतित रहूंगा। – Gluip

+1

मैं मूलभूत ने जो किया आपने किया: अपग्रेड कोड बदलें। इसके बाद मुझे अनइंस्टॉल करने पर फ़ोल्डर को निकालने के लिए प्रोग्राम्समेनिर (स्टार्टमेनू में) को भी बदलना पड़ा (यदि मेरे पास दो संस्करण स्थापित हैं) – Gluip

+0

क्या होता है यदि आपने संस्करण 2 स्थापित किया है और उसके बाद आप इसे इंस्टॉल करना चाहते हैं पुराना संस्करण संस्करण 1 फिर से? – Gilad

0

आपके पहले प्रश्न के बारे में: नहीं, आपको इसकी आवश्यकता नहीं है।
लेकिन क्यों?

मुझे अपने साइड-साइड परिदृश्य में विंडोज इंस्टालर नियमों को समझने में कठिनाई थी। आपको वास्तव में component rules (including when you need to brake them) और key paths की अवधारणाओं को समझने की आवश्यकता है। वाईएक्स इन पहलुओं को दूर नहीं करता है।

This answer पहले से ही संभावित इंटरैक्शन को हाइलाइट करता है। चलो कुछ उदाहरणों पर विचार करें।

  • आवेदन निष्पादन योग्य के साथ घटक के GUID को बदलने की आवश्यकता नहीं है। यह घटक नियमों को तोड़ता है, लेकिन यह काम करता है, क्योंकि उत्पाद के दोनों संस्करण एक ही घटक को एक गैर-हस्तक्षेप तरीके से परिभाषित करते हैं।
  • दोनों संस्करणों द्वारा साझा किया गया संसाधन सीधे समर्थित नहीं है। प्रोजेड्स का उपयोग करके फ़ाइल एक्सटेंशन का एक प्रमुख उदाहरण है, जैसा कि here दिखाया गया है।

    यदि आप GUID बदलते हैं ("*" GUID का उपयोग करते समय भी हो रहा है), तो संस्करण को अनइंस्टॉल करते समय एक्सटेंशन हटा दिया जाएगा।

    यदि आप GUID नहीं बदलते हैं, तो एक्सटेंशन बनाए रखा जाएगा, लेकिन हाल ही में स्थापित संस्करण को इंगित करें। आप कम से कम एक परिदृश्य का समर्थन करते हुए, कम से कम दो शैतानों के रूप में इस विकल्प के साथ जा सकते हैं, जहां उपयोगकर्ता उसी क्रम में संस्करणों को अनइंस्टॉल करते हैं जिसमें उन्होंने उन्हें इंस्टॉल किया था।
    यहां एक गड़बड़ी है: एक्सटेंशन को घटक का मुख्य मार्ग होना चाहिए। इससे प्रोजेड तत्व का उपयोग साइड-बाय-साइड परिदृश्य में समस्याग्रस्त हो जाता है क्योंकि यदि आप प्रोजेक्ट तत्व को संदर्भित फ़ाइल के समान घटक में नहीं डालते हैं तो आपको ICE69 चेतावनी मिल जाएगी। इसके अलावा, यह वाईएक्स का कार्यान्वयन विवरण है जो उत्पन्न करता है जो रजिस्ट्री प्रविष्टि मुख्य पथ होगा।