मैं एक MSI इंस्टाल कैसे करूँ?


11

मेरे पास लगभग 20 एप्लिकेशन हैं जिन्हें एक विशिष्ट क्रम में चलाने की आवश्यकता है। मैं उन्हें स्क्रिप्ट देना चाहता हूं ताकि मैं इसे दूर से कर सकूं।

हर एक एप्लिकेशन में Setup.exe और एक MSI होता है।

मैं उम्मीद कर रहा था कि एक साधारण स्क्रिप्ट हो, जो एक उत्तर फ़ाइल के साथ MSI कहलाए, लेकिन जब से मैंने इसे किया है, तब तक यह साल रहा है। हालांकि, मुझे याद नहीं है कि उत्तर फ़ाइल कैसे बनाई जाए।

क्या यह एक अच्छा तरीका है? या फिर कोई सरल तरीका होगा?

जवाबों:


17

लोड किए गए प्रश्न के बारे में बात करें ...

शुरुआत के लिए, setup.exe को अनदेखा करें। बाधाओं यह सिर्फ एमएसआई कहते हैं। या कभी-कभी वे सामान का एक गुच्छा निकालते हैं, जब आप एमएसआई को कॉल करते हैं, तो आप आमतौर पर अपनी टेम्प डायरेक्टरी देख सकते हैं जब आप सेटअप चलाते हैं और इसका अंदाजा लगा सकते हैं कि क्या कर रहे हैं।

मैंने हमेशा धोखा दिया और msiexec /i path/to-install.msi /l*v /qnलॉग को क्रैंक करने के साथ इंस्टॉल ( ) का एक सूखा रन किया, फिर लॉग के माध्यम से चला गया और उन गुणों को बाहर निकाल दिया जिन्हें मैं सेट लाइन के माध्यम से सेट और सेट करना चाहता था। उत्तर फ़ाइलों ने कभी काम नहीं किया, या उन्हें बनाने के लिए प्रक्रिया से गुजरने की परेशानी के लायक नहीं थे।

तब मैंने InstEdit पाया और इसे बोटलोड किया। यह आपको एक MSI के गुणों को संपादित करने और एक ट्रांसफ़ॉर्म उत्पन्न करने देगा जो आप तब अपनी स्क्रिप्ट में एक तर्क के रूप में पारित कर सकते हैं: msiexec /i path/to/installer.msi /t path/to/transform.mst मैं इसे पहले शॉट देने की सलाह देता हूं, एक मुफ्त संस्करण है जो हर चीज के बारे में बताता है।

आप सभी स्विच के लिए यहां भी नज़र डाल सकते हैंmsiexec


+1 लेकिन दुर्भाग्य से स्विच सभी MSI के साथ काम नहीं करते हैं। क्यों नहीं देखा है, लेकिन यह निश्चित रूप से कुछ के साथ मामला है।
सियारैन

निर्भर करता है कि MSI कैसे बनाया गया था। कुछ गुण हैं जो आप कुछ मापदंडों, आईआईआरसी को अनदेखा करने के लिए सेट कर सकते हैं। आमतौर पर Instedit का उपयोग करना और एक ट्रांसफॉर्म का निर्माण करना हमेशा से काम करता है, केवल वही त्रुटियां थीं जो आमतौर पर मानव थीं।
छिलका


1
लॉग विधि ने मेरे लिए काम किया। हालांकि यह ध्यान रखना महत्वपूर्ण है कि गुण के रूप में सूचीबद्ध किया जाएगाProperty(S) : PROPERTY_NAME...
आकर्षित Chapin

5

Msiexec वह उपकरण है जिसकी आपको आवश्यकता है। यह "चुप" सामान स्थापित करने के लिए एक -q पैरामीटर है:

/ qn: कोई उपयोगकर्ता इंटरफ़ेस प्रदर्शित नहीं करता है।

/ qb: एक बुनियादी यूजर इंटरफेस प्रदर्शित करता है।

/ qr: इंस्टॉलेशन के अंत में प्रदर्शित मोडल डायलॉग बॉक्स के साथ कम यूजर इंटरफेस को प्रदर्शित करता है।

/ qf: पूर्ण उपयोगकर्ता इंटरफ़ेस को प्रदर्शित करता है जिसमें अंत में प्रदर्शित एक मॉडल डायलॉग बॉक्स होता है।

/ qn +: अंत में प्रदर्शित एक मोडल डायलॉग बॉक्स को छोड़कर कोई यूजर इंटरफेस नहीं दिखाता है।

/ qb +: अंत में प्रदर्शित एक मॉडल डायलॉग बॉक्स के साथ एक बुनियादी यूजर इंटरफेस प्रदर्शित करता है।

/ qb-: एक मूल उपयोगकर्ता इंटरफ़ेस प्रदर्शित करता है जिसमें कोई मॉडल संवाद बॉक्स नहीं है।

आप कमांड लाइन के अंत में नामित विकल्प (या "गुण") भी प्रदान कर सकते हैं; कौन से गुण समर्थित हैं यह पैकेज पर निर्भर करता है। उदाहरण के लिए, यह आदेश:

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

... कैसे आप ActiveState पर्ल को स्थापित करते हैं, MSI पैकेज को अपने PATH में Perl.exe जोड़ने और इसके साथ .pl ​​फ़ाइलों को संबद्ध करने का निर्देश देते हैं। ( स्रोत )


1
ध्यान दें कि एक डेवलपर अपने msi इंस्टॉलर में / q विकल्प को अक्षम करने का विकल्प चुन सकता है।
जोएल कोएहॉर्न

2

अधिकांश अनुप्रयोगों को चुपचाप स्थापित किया जा सकता है और उसके बाद स्क्रिप्ट किया जा सकता है। प्रत्येक Setup.exe में कई संभावित स्विच हो सकते हैं, इसलिए विक्रेता को कॉल करना या उनकी वेब साइट खोजना आवश्यक है। कभी-कभी आप एक ?, / h / मदद स्विच के साथ सेटअप शुरू करके जानकारी प्राप्त कर सकते हैं। MSI फ़ाइलों में किसी भी संख्या में स्विच हो सकते हैं लेकिन यह आलेख MSI कमांड लाइन पैरामीटर सूची प्रदान करता है।

प्रक्रिया को स्क्रिप्ट करते समय आप एक ऐसे ऐप में चल सकते हैं जो setup.exe के साथ इंस्टॉल होता है और फिर MSI जैसी दूसरी फ़ाइल लॉन्च करता है। एक उदाहरण एमएस ऑफिस एक्सपी था। जब ऐसा होता है तो आपकी स्क्रिप्ट यह सोच सकती है कि आपके द्वारा लॉन्च की गई फ़ाइल पूरी हो गई है और अगले सेटअप को शुरू करें जो सब कुछ दक्षिण में जाने में विफल रहता है। इसके आस-पास जाने के लिए सेटअप फ़ाइल को दरकिनार करें और सीधे कमांड लाइन विकल्पों के साथ वास्तविक इंस्टॉलर (संभावित एमएसआई) पर जाएं। यदि यह संभव नहीं है, तो आपको कुछ प्रकार के टाइमर पॉज़ बनाने की आवश्यकता हो सकती है। मैंने wa.exe नामक एक छोटी सी उपयोगिता का उपयोग किया था जो मुझे इंटरनेट पर मिली थी लेकिन ऐसा करने के एक लाख तरीके हैं। स्क्रिप्टिंग की कुंजी हालांकि यह पहचानने में सक्षम है कि एक एप्लिकेशन सही ढंग से स्थापित है ताकि अगली स्थापना शुरू हो सके।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.