2012-10-30 45 views
13

मुझे विंडोज 64 बिट और 32 बिट दोनों को लक्षित करने वाले सॉफ़्टवेयर सेटअप को तैनात करने की आवश्यकता है। मेरे पास प्रत्येक प्लेटफार्म के लिए दो अलग-अलग विंडोज इंस्टालर डेटाबेस हैं (WiX के साथ बनाया गया है), और मैं एक इंस्टॉलेशन बूटस्ट्रैप निष्पादन योग्य दोनों में गठबंधन करने के लिए dotNetInstaller का उपयोग कर रहा हूं।64-बिट और 32-बिट विंडोज इंस्टालर पैकेज को एक ही सेटअप के रूप में कैसे तैनात किया जाए?

मैं वर्तमान में dotNetInstaller के संस्करण 1.10 का उपयोग कर रहा हूं और auto_close_if_installed=True सेट करता हूं, क्योंकि मैं उपयोगकर्ता से बूटस्ट्रैपर को कॉमेलेटली से छिपाना चाहता हूं। फिर भी, dotNetInstaller मेरे इंस्टॉलर चल रहा है, जबकि एक सिल्ल प्रगति बार खिड़की प्रदर्शित करने पर जोर देता है, और वास्तव में ऑटो बंद नहीं है। उपयोगकर्ता को यह बताते हुए एक संवाद बॉक्स की पुष्टि करने की आवश्यकता है कि एप्लिकेशन सफलतापूर्वक इंस्टॉल किया गया था। लेकिन वास्तविक सौदा-ब्रेकर यह है कि यह विंडोज 8 (अभी तक) का समर्थन नहीं करता है।

dotNetInstaller के बाद के संस्करण में अपग्रेड करना auto_close_if_installed तोड़ने लगता है, इसलिए यह भी बदतर है।

तो मेरा सवाल यह है कि: एक निष्पादन योग्य दोनों सेटअप को तैनात करने के लिए कला की वर्तमान स्थिति क्या है। Wix Burn एक विकल्प होगा?

मुझे पता है कि एक आदर्श दुनिया में, मैं बस अपने ग्राहकों को या तो मंच के लिए अलग इंस्टॉलर्स प्रदान करता हूं। लेकिन वे इस तरह के subtleties से पूरी तरह से अनजान होने के लिए होता है, उनमें से ज्यादातर यह भी नहीं जानते कि वे किस प्लेटफॉर्म का उपयोग कर रहे हैं।

+2

मैंने अतीत में इसके लिए जला दिया है, लेकिन यह ओवरकिल की तरह थोड़ा महसूस किया। मुझे यह देखने में दिलचस्पी है कि दूसरों को क्या लगता है। – bricelam

+1

@ ब्राइस: बात यह है कि जला भी बहुत भरोसेमंद प्रतीत नहीं होता है। विजुअल स्टूडियो अपडेट 1 सीटीपी 3 का उपयोग करके इसे तैनात किया गया था, और यह मेरे कंप्यूटर पर बर्न की वजह से स्थापित करने में विफल रहा: [माइक्रोसॉफ्ट कनेक्ट 766849] (https://connect.microsoft.com/VisualStudio/feedback/details/766849/visual- स्टूडियो -2012-अपडेट-1-सीटीपी -3-क्रैश-एंड-इंस्टॉलेशन) –

+4

मैं इसके लिए जलाऊंगा, एक पैकेज के साथ installCondition = "NOT VersionNT64" और अन्य InstallCondition = "VersionNT64" के साथ चिह्नित किया गया है। जलाने का उपयोग करके आप एक एक्सई पैकेज बना सकते हैं और उपयोगकर्ताओं को सही चलाने की ज़रूरत नहीं है। – Neil

उत्तर

21

मैं निश्चित रूप से इस परिदृश्य में जला का उपयोग करता हूं। निम्नलिखित के समान कुछ:

<Wix> 
    <Bundle...> 
    <BootstrapperApplicationRef Id='WixStandardBootstrapperApplication.HyperlinkLicense' /> 

    <Chain> 
     <MsiPackage InstallCondition='NOT VersionNT64' SourceFile='path\to\x86.msi' /> 
     <MsiPackage InstallCondition='VersionNT64' SourceFile='path\to\x64.msi' /> 
    </Chain> 
    </Bundle> 
</Wix> 

यह परिदृश्यों में से एक है जिसे बर्न को संभालने के लिए डिज़ाइन किया गया था।

+2

हां, बिल्कुल। यही वह है जो मैंने कर लिया है। मैं दूसरों के भविष्य के संदर्भ के लिए आपका उत्तर स्वीकार करूंगा। –

+1

वाईएक्स 3.7 के साथ ऐसा लगता है कि एमएसपीकेज पर हालत विशेषता की अनुमति नहीं है। क्या चीज कुछ है जो 3.8 में आ रही है या क्या हाल ही में यह बदल गया था? उदाहरण में –

+1

टाइपो। 'शर्त 'होना चाहिए' इंस्टॉल कंडीशन '। –

0

आप इसे एक ही विक्स में स्थितियों और सुविधाओं के माध्यम से कर सकते हैं।

<Feature Id='X86' Level='1'> 
    <ComponentRef Id='X86Feature1' /> 
    <Condition Level="1">NOT VersionNT64</Condition> 
</Feature> 
+3

डाउनवोट क्यों? – dvallejo

+0

आईडी ने न तो ऊपर या नीचे मतदान किया था। लेकिन क्या आपको लगता है कि आपने सवाल को सावधानीपूर्वक पढ़ा है? लक्ष्य दो एमएसआई को बूट स्टैपर के साथ जोड़ना था, है ना? – harper