2009-12-07 14 views
29

क्या कोई एक्सईई के बजाय एमएसआई पैकेज के रूप में नलसॉफ्ट इंस्टालर स्क्रिप्ट (एनएसआई) सेटअप को संकलित करने का कोई तरीका है?एनएसआईएस स्क्रिप्ट को एक एमएसआई पैकेज के रूप में बनाएं

उत्तर

25

दुर्भाग्य की कोशिश नहीं।

NSIS आप स्क्रिप्ट, प्रक्रियात्मक स्थापना संकुल बना सकते हैं। यह आसान, उपयोग करने में आसान है और विंडोज इंस्टालर में कई सुविधाएं मौजूद नहीं हैं।

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

एमएसआई को समझने के लिए एक अच्छी शुरुआत के लिए The Definitive Guide to Windows Installer देखें।

+0

आगे: एमएसआई के साथ बहुत सारे मुद्दे हैं - आपको इसकी आवश्यकता है x86 बनाम x64 के लिए एक उदाहरण के लिए अलग-अलग इंस्टॉलर बनाएं (कई लोगों में से - एक और उदाहरण: एमएसआई या तो हमेशा बढ़ सकता है या कभी नहीं बढ़ा सकता - यह दोनों नहीं कर सकता।) - मुझे कल्पना है कि ये सीमाएं एनएसआईएस के साथ मौजूद नहीं हैं। – BrainSlugs83

+1

@ BrainSlugs83 एमएसआई श्रृंखला में यूएसी देखें। यदि आप इसे सही तरीके से लिखते हैं तो कोई सीमा नहीं है :) http://blogs.msdn.com/b/rflaming/archive/2006/10/01/uac-in-msi-notes-how-to-build-packages- यह -work-for-standard-user-and-per-machine.aspx – saschabeaumont

+0

एक और बोनस एनएसआईएस के अंदर आपके एमएसआई को लपेटने का उपयोग कर रहा है। यह बहुत अच्छा है जब आईटी विभागों ने विंडोज इंस्टालर सेवा को अक्षम (या मैन्युअल) पर सेट किया है। इसके लिए आप अपने एनएसआईएस इंस्टॉलर की जांच कर सकते हैं, सेवा को सक्षम कर सकते हैं और फिर अपने एमएसआई निष्पादित और निष्पादित कर सकते हैं। कोई भी कम यह एक अच्छा लेखन नहीं है, @saschabeaumont – Damian

12

नहीं (और .MSI उत्पादन का समर्थन करने के कोई योजना नहीं है), WIX

+3

वैकल्पिक रूप से वहां 'वाईएक्स' डालना अच्छा है :) –

16

एनएसआईएस इंस्टॉलर एमएसआई रैपर का उपयोग कर एमएसआई फाइलों में लपेटा जा सकता है। यह एक छोटा सा टूल है जिसे मैंने एनएसआईएस और इनो सेटअप इंस्टॉलर्स को लपेटने के लिए बनाया है। यह एमएसआई संकलित करने के लिए वाईएक्स का उपयोग करता है लेकिन एक एक्सएमएल फ़ाइल की बजाय आपकी मदद करने के लिए एक जीयूआई है।

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

मैं भी एमएसआई स्थापित होने पर लिपटे इंस्टॉलर को कमांड लाइन पैरामीटर पास करने में सक्षम होना चाहता था।

यदि आप इसका उपयोग करना चाहते हैं या इसे बेहतर बनाने में मेरी सहायता करना चाहते हैं, तो आप इसे http://www.exemsi.com पर पा सकते हैं।

मैं राय साझा करता हूं कि एक एमएसआई पैकेज में निष्पादन योग्य इंस्टॉलर को लपेटना आदर्श समाधान नहीं है। हालांकि, जब आपके पास पहले से ही एक्सई है तो यह बहुत समझ में आ सकता है :-)

+0

पवित्र बकवास! यह एनएसआईएस में अंतर्निहित होना चाहिए! इसे अभी आज़माएं। – BrainSlugs83

+2

पवित्र बकवास उस पैटर्न का एक अच्छा विवरण है। यह बिल्कुल समझ में नहीं आता ... क्षमा करें। –

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