.Msi और setup.exe फ़ाइल के बीच विशिष्ट अंतर क्या हैं?


193

मैंने बहुत खोज की, लेकिन सभी उत्तर दिए गए हैं। सटीक उत्तर खोजने में मेरी मदद करें।




मैं एक प्रोग्राम स्थापित करना चाहता था जो एक EXE और MSI इंस्टॉलर दोनों के साथ आया हो। मैंने पहले MSI से स्थापित किया था, जो केवल प्रोग्राम फ़ाइलों को स्थापित करता था (किसी भी पूर्वापेक्षा या निर्भरता नहीं, और प्रारंभ मेनू आइकन नहीं बना)। जब मैंने प्रोग्राम को मैन्युअल रूप से लॉन्च किया, तो यह कहना विफल रहा कि कुछ DLL गायब थे। EXE से इंस्टॉल करने से अन्य चीजें भी इंस्टॉल हो जाती हैं, और उत्पाद ठीक चलता है। मैं कहूंगा, अगर कोई सॉफ़्टवेयर निर्माता स्थापित करने के लिए EXE और MSI दोनों विकल्प प्रदान करता है, तो EXE का उपयोग करें।
जेम्स एल।

जवाबों:


232

MSI एक Windows इंस्टालर डेटाबेस है। विंडोज इंस्टालर (विंडोज के साथ स्थापित एक सेवा) आपके सिस्टम पर सॉफ़्टवेयर स्थापित करने के लिए इसका उपयोग करता है (यानी फ़ाइलों की प्रतिलिपि बनाएँ, रजिस्ट्री मान सेट करें, आदि ...)।

एक setup.exe एक बूटस्ट्रैपर या एक गैर- msi इंस्टॉलर हो सकता है। एक गैर-एमएसआई इंस्टॉलर स्वयं से स्थापना संसाधनों को निकालेगा और सीधे उनकी स्थापना का प्रबंधन करेगा। एक बूटस्ट्रैपर में अलग-अलग फ़ाइलों के बजाय एक MSI होगा। इस स्थिति में, setup.exe MSI को स्थापित करने के लिए Windows इंस्टालर को कॉल करेगा।

कुछ कारण जिन्हें आप setup.exe उपयोग करना चाहते हैं :

  • विंडोज इंस्टालर केवल एक एमएसआई को एक बार में स्थापित करने की अनुमति देता है। इसका मतलब है कि MSI को अन्य MSI (जैसे .NET फ्रेमवर्क या C ++ रनटाइम जैसी निर्भरता) स्थापित करना मुश्किल है। चूंकि setup.exe एक MSI नहीं है, इसलिए इसे क्रम में कई MSI स्थापित करने के लिए उपयोग किया जा सकता है।
  • आप संस्थापन को प्रबंधित करने के तरीके पर अधिक सटीक नियंत्रण चाहते हैं। एक MSI के बहुत विशिष्ट नियम हैं कि यह कैसे इंस्टॉलेशन का प्रबंधन करता है, जिसमें इंस्टाल करना, अपग्रेड करना और अनइंस्टॉल करना शामिल है। एक setup.exe सॉफ्टवेयर विन्यास प्रक्रिया पर पूरा नियंत्रण देता है। यह केवल तभी किया जाना चाहिए यदि आपको वास्तव में अतिरिक्त नियंत्रण की आवश्यकता है क्योंकि यह बहुत काम है, और इसे सही करने के लिए यह मुश्किल हो सकता है।

7
मैं इसे टाइप करने जा रहा था - शायद यही वह है जिसकी तलाश है
Mongoose

1
एक्सपी आधारित इंस्टॉलर के निर्माण की तुलना में मेरे अनुभव में एक एमएसआई इंस्टॉलर का निर्माण बहुत काम है। यह पहली बार इंस्टॉलर बनाने के लिए आपके द्वारा उपयोग किए जाने वाले टूल पर बहुत निर्भर करता है। दुर्भाग्य से सभी MSI आधारित इंस्टॉलर उपकरण जो मैंने देखे हैं वे या तो वाणिज्यिक GUI उपकरण या जटिल WiX आधारित उपकरण हैं। दोनों में से कोई भी मेरी जरूरतों को विशेष रूप से अच्छी तरह से सूट करता है (यानी स्क्रिप्ट के साथ स्वचालित रूप से इंस्टॉलर का निर्माण)।
craftworkgames

इसलिए मैं अभी भी सोच रहा हूं कि एमएसआई क्यों मौजूद है। जब exe ठीक काम करने लगता है तो इसे हल करने की क्या समस्या थी?
मफिन मैन

14

.msi फाइलें विंडोज़ इंस्टॉलर फाइलें हैं विंडोज इंस्टॉलर रनटाइम के बिना, setup.exe किसी भी निष्पादन योग्य प्रोग्राम हो सकता है (शायद एक जो आपके कंप्यूटर पर सामान स्थापित करता है)


9

MSI एक इंस्टॉलर फाइल है जो आपके प्रोग्राम को एग्जीक्यूटिव सिस्टम पर इंस्टॉल करता है।

Setup.exe एक अनुप्रयोग (निष्पादन योग्य फ़ाइल) है जिसमें इसकी एक संसाधन के रूप में msi फ़ाइल है। Setup.exe निष्पादित करने से बदले में msi (इंस्टॉलर) निष्पादित होगा जो आपके एप्लिकेशन को सिस्टम में लिखता है।

संपादित करें (जैसा कि टिप्पणी में सुझाव दिया गया है): सेटअप निष्पादन योग्य फ़ाइलों में आंतरिक रूप से MSI संसाधन होना आवश्यक नहीं है


सेटअप निष्पादन योग्य फ़ाइलों में आंतरिक रूप से MSI संसाधन होना आवश्यक नहीं है।
jkmartindale

-9

MSI मूल रूप से Microsoft का एक इंस्टॉलर है जो विंडोज़ में बनाया गया है। यह सुविधाओं के साथ घटकों को जोड़ता है और इसमें इंस्टॉलेशन नियंत्रण जानकारी होती है। यह आवश्यक नहीं है कि इस फ़ाइल में वास्तविक उपयोगकर्ता आवश्यक फ़ाइलें हों, यानी अनुप्रयोग प्रोग्राम जो उपयोगकर्ता अपेक्षा करता है। MSI में इसके अंदर एक और setup.exe हो सकती है जिसे MSI लपेटता है, जिसमें वास्तव में उपयोगकर्ता की आवश्यक फाइलें होती हैं।

आशा है कि यह आपको संदेह को साफ करता है।


13
यह भ्रामक और आम तौर पर गलत है - उस MSIफ़ाइलों में आमतौर पर फाइलें नहीं लपेटी जाती हैं setup.exe, बल्कि इसके विपरीत।
फ्लैक डायनेनो

"MSI में इसके अंदर एक और setup.exe हो सकती है जिसे MSI लपेटता है" गलत है! बल्कि, यह वाक्य सत्य है: एक .exe के अंदर एक .msi है।
एक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.