2012-07-20 10 views
11

मैं इस तरह एक MSI सेटअप:प्रमुख उन्नयन कैसे करना है जब जला/Wix का उपयोग कर 3.6

<Product Id="*" ... UpgradeCode="4207FF3B-5E0D-4311-9DFC-B41AA8DE2965" /> 
    <MajorUpgrade DowngradeErrorMessage="Can't downgrade" /> 

यह उम्मीद के रूप में काम करता है:

  1. उत्पाद स्थापित
  2. पुनः संकलित (प्रभावी रूप से एक पैदा नया आईडी)
  3. नई एमएसआई फ़ाइल शुरू करना परिवर्तन दृश्य लाता है और मैं उत्पाद की मरम्मत या अनइंस्टॉल कर सकता हूं।

अच्छा। लेकिन फिर जला आता है।

मैंने सबसे सरल बंडल बनाया है जिसमें से कोई चीज हो सकती है। मैं मानक bootrapper का उपयोग करें और केवल एक MsiPackage जोड़ें:

<MsiPackage SourceFile="$(var.Setup.TargetPath)" /> 

समस्या यह है कि प्रत्येक पुनः संकलित के बाद मैं पहले से ही स्थापित उत्पाद बगल में एक बार फिर से उत्पाद स्थापित कर सकते हैं, कुछ भी बदले बिना है! इसका परिणाम डुप्लिकेट एआरपी प्रविष्टियों में होता है!

अगर मैं पुनः संकलित करें और बंडल exe फ़ाइल में दो बार चलाने के नहीं है, मैं संशोधित सेटअप स्क्रीन अपेक्षा के अनुरूप मिलता है। मैं सिर्फ एक एमएसआई के साथ जलने के साथ वही व्यवहार करने के लिए क्या कर सकता हूं?

उत्तर

7

बंडल संस्करण संख्या में वृद्धि और बर्न पिछले संस्करण को अपग्रेड करेगा और इसे हटा देगा।

+3

हाँ, धन्यवाद। लेकिन संस्करण संख्या में वृद्धि किए बिना साइड-बाय-साइड इंस्टॉलेशन को रोकने का कोई तरीका नहीं है? मैं एमएसआई पैकेज के साथ एक ही व्यवहार करना चाहता हूं। –

+2

बूटस्ट्रैपर एप्लिकेशन OnPlanRelatedBundle में अनुरोध स्थिति को बदलकर डिफ़ॉल्ट नो-ऑप व्यवहार को ओवरराइड कर सकता है। –

+0

आप इस काम के लिए अनुरोध राज्य को ओवरराइड करेंगे? वर्तमान? –

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